Очистка Наукри

#python #selenium #web-scraping

#python #selenium #очистка от веб-страниц

Вопрос:

Я пытаюсь очиститьhttps://www.naukri.com/information-technology-jobs-in-hyderabad-secunderabad-secunderabad для количества страниц. Я пытаюсь получить название компании, назначение и навыки. Я использовал проверку и копирование xpath. Я сталкиваюсь с проблемой многократного нажатия кнопки «Далее» и получения данных.

 for i in range(1,21):
    company_name.append(driver.find_element_by_xpath('//*[@id="root"]/div[4]/div[2]/section[2]/div[2]/article[' str(i) ']/div[1]/div/div/a[1]').text)
    time.sleep(3)
    designation.append(driver.find_element_by_xpath('//*[@id="root"]/div[4]/div[2]/section[2]/div[2]/article[' str(i) ']/div[1]/div/a').text)
    time.sleep(3)
    skills.append(driver.find_element_by_xpath('//*[@id="root"]/div[4]/div[2]/section[2]/div[2]/article[' str(i) ']/ul').text)
  

Комментарии:

1. Привет, не могли бы вы рассказать нам более подробно об ошибке? Это вообще не нажатие на кнопку или выдается какая-то ошибка?

Ответ №1:

Вы можете использовать следующий xpath для нажатия кнопки далее:

 while True:
    next_page_btn = driver.find_elements_by_xpath("//*[@class='pagination mt-64 mb-60']//div/child::*")
    if len(next_page_btn) < 1:
        print("No more pages left")
        break
    else:
        WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, '/information-technology-jobs-in-hyderabad-secunderabad-2'))).click()//or use partial link text
  

Ответ №2:

Вам не нужно нажимать кнопку Далее, чтобы перейти на следующую страницу.

https://www.naukri.com/information-technology-jobs-in-hyderabad-secunderabad-10

https://www.naukri.com/information-technology-jobs-in-hyderabad-secunderabad-20

Если вы обратите внимание на приведенные выше URL-адреса, то номер навигации по странице, указанный в конце каждого URL-адреса, означает, что они разделены.

Чтобы получить доступ ко всем страницам результатов поиска, вам нужно выполнить итерацию по диапазону, отформатировать число в URL и очистить данные.

Пример: для ii в диапазоне (1, 1000): URL = «https://www.naukri.com/information-technology-jobs-in-hyderabad-secunderabad -{}».отформатируйте (ii) свой экстрактор здесь.