如何使用 Selenium Python 迭代 google 页面
How to iterating google pages using Selenium Python
我正在尝试使用 Selenium 抓取 google 搜索数据,我也可以获取所有数据,但在页面结束时我会看到错误。
line 23, in <module>
next_page = driver.find_element_by_link_text('Next')
line 428, in find_element_by_link_text
return self.find_element(by=By.LINK_TEXT, value=link_text)
这是我的代码,我在成功收集所有数据后收到此错误。
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome('./chromedriver.exe')
driver.maximize_window()
driver.get('https://www.google.com/search?q=florida+time+now')
driver.find_element_by_link_text('Change to English').click()
sleep(2)
print(driver.current_url)
print(driver.title)
while True:
titles = driver.find_elements_by_xpath('//*[@class="LC20lb DKV0Md"]')
for title in titles:
link_title = title.find_element_by_xpath('.//span').text
print(link_title)
sleep(3)
next_page = driver.find_element_by_link_text('Next')
if next_page:
next_page.click()
else:
break
sleep(2)
driver.close()
如果元素不存在,它将抛出错误。你可以做什么使用 driver.find_elements_by_link_text('Next')
检查元素的长度,如果长度超过 0,则 returns list
的 elements.Check 长度然后 click 否则 break.
next_page = driver.find_elements_by_link_text('Next')
if len(next_page)>0:
next_page[0].click()
else:
break
我正在尝试使用 Selenium 抓取 google 搜索数据,我也可以获取所有数据,但在页面结束时我会看到错误。
line 23, in <module>
next_page = driver.find_element_by_link_text('Next')
line 428, in find_element_by_link_text
return self.find_element(by=By.LINK_TEXT, value=link_text)
这是我的代码,我在成功收集所有数据后收到此错误。
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome('./chromedriver.exe')
driver.maximize_window()
driver.get('https://www.google.com/search?q=florida+time+now')
driver.find_element_by_link_text('Change to English').click()
sleep(2)
print(driver.current_url)
print(driver.title)
while True:
titles = driver.find_elements_by_xpath('//*[@class="LC20lb DKV0Md"]')
for title in titles:
link_title = title.find_element_by_xpath('.//span').text
print(link_title)
sleep(3)
next_page = driver.find_element_by_link_text('Next')
if next_page:
next_page.click()
else:
break
sleep(2)
driver.close()
如果元素不存在,它将抛出错误。你可以做什么使用 driver.find_elements_by_link_text('Next')
检查元素的长度,如果长度超过 0,则 returns list
的 elements.Check 长度然后 click 否则 break.
next_page = driver.find_elements_by_link_text('Next')
if len(next_page)>0:
next_page[0].click()
else:
break