python - 无法识别使用硒“点击”下一页的内容
问题描述
我正在尝试使用 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'])
解决方案
下一页按钮位于页面底部,因此您首先需要滚动到该元素,然后单击它。像这样:
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()
推荐阅读
- asp.net - 如何在 ASP.NET MVC 中使用 RedActorX 绑定数据
- c# - System.IO.FileNotFoundException: '找不到文件 Xamarin Forms
- ios - MFMailComposeViewController() 未在 UIAlertAction 内解除
- azure-cosmosdb - 使用 DMT 工具将 Cosmos Db sql api 从一个容器迁移到另一个容器
- java - 将查询参数中的任何 Json 对象与字符串一起传递
- docker - 卷 myvol 指定不存在的驱动程序 azurefile
- spring-boot - 带有 Apache CXF jaxrs 的 Spring Boot 中的 JWT 客户端
- r - R - 有没有办法通过实际合并同名列来连接两个数据框?
- vodapay-miniprogram - 为什么我在注册时没有收到 Vodapay 测试应用程序的 OTP?
- wordpress - 创建 api 时无法获取图像 url acf