python - 使用 BeautifulSoup 和不变的 URL 进行网页抓取
问题描述
我正在尝试刮 这个
r = requests.get(url)
soup = BeautifulSoup(r.text , 'lxml')
details = soup.find_all('span', {'class' : 'src'})
details = soup.find_all('div', {'class' : 'product_contain'})
i=0
for d in details:
print(i,d.get_text(strip=True).strip())
i+=1
但它只抓取一个网页。我检查了XHR
但是当它更改页面时没有触发任何内容。
我还检查了FORM DATA
advancesearch.aspx ,但它也没有页面索引相关信息。在页面点击事件我发现ctl00$ContentPlaceHolder1$gvItem$ctl01$ctl03
但不知道如何在 URL 中使用它。
我应该使用什么 URL 来访问其他页面?
解决方案
在这种情况下,您应该使用 Selenium,它将在浏览器中打开页面,然后您可以处理导航按钮的单击事件并每次访问刷新的 DOM。这是一个简单的代码供您参考:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.google.com")
browser.find_element_by_id("lst-ib").send_keys("book")
browser.find_element_by_name("btnK").click()
推荐阅读
- java - 在android中将数据从第一个选项卡传递到第三个选项卡活动时获取空对象引用
- c# - EF Core 在映射到 Select 中的对象时查询 SQL 中的所有列
- android - 构建 apk 时反应原生已弃用的 Gradle 功能
- java - 使用java spring rest api并将记录插入mysql表
- java - Android Room Foreign Key onDelte = Cascade 没有效果
- javascript - Svelte Tabs - 不要重新加载/销毁数据
- vue.js - 路由器内部命名空间模块的访问状态
- python - 从 URL 解压 rar 文件
- php - 如何在 Symfony 5 的其他目录中自动注册“控制器作为服务”
- c# - c#互操作中的Excel多列过滤器