首页 > 解决方案 > 无法识别使用硒“点击”下一页的内容

问题描述

我正在尝试使用 python - selenium 和 bs4 从雅虎搜索中获取搜索结果。我已经能够成功获取链接,但我无法单击底部的按钮转到下一页。我尝试了一种方法,但在第二页之后无法识别。

链接在这里:

https://in.search.yahoo.com/search;_ylt=AwrwSY6ratRgKEcA0Bm6HAx.;_ylc=X1MDMjExNDcyMzAwMgRfcgMyBGZyAwRmcjIDc2ItdG9wLXNlYXJjaARncHJpZANidkhMeWFsMlJuLnZFX1ZVRk15LlBBBG5fcnNsdAMwBG5fc3VnZwMxMARvcmlnaW4DaW4uc2VhcmNoLnlhaG9vLmNvbQRwb3MDMARwcXN0cgMEcHFzdHJsAzAEcXN0cmwDMTQEcXVlcnkDc3RhY2slMjBvdmVyZmxvdwR0X3N0bXADMTYyNDUzMzY3OA--?p=stack+overflow&fr=sfp&iscqry=&fr2=sb-top-search

这就是我从页面获取数据但需要放入一个更改页面的循环的方法:

page = BeautifulSoup(driver.page_source, 'lxml')
lnks = page.find('div', {'id': 'web'}).find_all('a', href = True)

for i in lnks:
    print(i['href'])

标签: pythonseleniumweb-scraping

解决方案


下一页按钮位于页面底部,因此您首先需要滚动到该元素,然后单击它。像这样:

from selenium.webdriver.common.action_chains import ActionChains

actions = ActionChains(driver)
next_page_btn = driver.find_element_by_css_selector("a.next")
actions.move_to_element(next_page_btn).build().perform()
time.sleep(0.5)
next_page_btn.click()

推荐阅读