我想做一个谷歌搜索,收集所有点击的链接,这样我就可以点击这些链接,并在收集完所有链接后从中提取数据。我怎样才能从每一次点击中获得链接?在
我尝试过几种解决方案,比如使用for循环和whiletrue语句。下面我将展示一些代码示例。我要么没有得到任何数据,要么我只得到数据(链接)从1个网页。有人能帮我弄清楚如何在谷歌搜索的每一页上进行迭代,并获得所有链接,这样我就可以继续抓取这些页面了吗?我刚开始使用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()
^{pr2}$
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()
我希望从google搜索中得到一个可以被Selenium打开的所有url的列表,这样Selenium就可以从这些页面中获取数据。在
我只从一个页面得到一个url列表。下一步(刮掉那些页面)工作正常。但由于这个限制,我只得到10个结果,而我想看到所有的结果。在