Я хочу выполнить поиск в Google и собрать ссылки на все хиты, чтобы я мог щелкнуть эти ссылки и извлечь данные из них после сбора всех ссылок. Как я могу получить ссылку от каждого хита?
Я пробовал несколько решений, таких как использование цикла for и оператора while True. Я покажу несколько примеров кода ниже. Я либо не получаю никаких данных, либо получаю только данные (ссылки) с 1 веб-страницы. Может кто-нибудь помочь мне разобраться, как перебирать каждую страницу поиска в Google и получать все ссылки, чтобы я мог продолжить просмотр этих страниц? Я новичок в использовании Selenium, поэтому извините, если код не имеет особого смысла, я действительно запутался с этим.
driver.get('https://www.google.com')
search = driver.find_element_by_name('q')
search.send_keys('condition')
sleep(0.5)
search.send_keys(Keys.RETURN)
sleep(0.5)
while True:
try:
urls = driver.find_elements_by_class_name('iUh30')
for url in urls
urls = [url.text for url in urls]
sleep(0.5)
element = driver.find_element_by_id('pnnext')
driver.execute_script("return arguments[0].scrollIntoView();", element)
sleep(0.5)
element.click()
urls = driver.find_elements_by_class_name('iUh30')
urls = [url.text for url in urls]
sleep(0.5)
element = driver.find_element_by_id('pnnext')
driver.execute_script("return arguments[0].scrollIntoView();", element)
sleep(0.5)
element.click()
while True:
next_page_btn = driver.find_element_by_id('pnnext')
if len(next_page_btn) <1:
print("no more pages left")
break
else:
urls = driver.find_elements_by_class_name('iUh30')
urls = [url.text for url in urls]
sleep(0.5)
element = driver.find_element_by_id('pnnext')
driver.execute_script("return arguments[0].scrollIntoView();", element)
sleep(0.5)
element.click()
Я ожидаю, что список всех URL-адресов из поиска Google может быть открыт Selenium, чтобы Selenium мог получать данные с этих страниц.
Я получаю список URL только с одной страницы. Следующий шаг (очистка этих страниц) работает нормально. Но из-за этого ограничения я получаю только 10 результатов, в то время как я хотел бы видеть все результаты.