#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) свой экстрактор здесь.