我正在尝试从ratemyprofessors.com 中提取完整的HTML,但是在页面底部,有一个“加载更多评级”按钮,可让您查看更多评论。我正在使用 requests.get(url) 和 beautifulsoup,但这只给出前 20 条评论。有没有办法让页面在返回之前加载所有评论?这是我目前正在做的,给出了前 20 条评论,但不是全部。 response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") comments = [] for j in soup.findAll('div', attrs={'class': 'Comments__StyledComments-dzzyvm-0 dEfjGB'}): comments.append(j.text)
1 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
BeautifulSoup 更像是静态页面的 HTML 解析器,而不是更动态的 Web 应用程序的渲染器。
您可以通过 Selenium 使用无头浏览器实现您想要的效果,方法是渲染整个页面并重复单击“更多”链接,直到没有更多内容可供加载。
由于您已经在使用 Requests,因此另一个可能有效的选项是 Requests-HTML,它也支持通过调用.html.render()
响应对象进行动态渲染。
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消