使用 python 获取具有动态扩展容器的页面的完整 HTML

我正在尝试从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)


12345678_0001
浏览 120回答 1
1回答

拉丁的传说

BeautifulSoup 更像是静态页面的 HTML 解析器,而不是更动态的 Web 应用程序的渲染器。您可以通过 Selenium 使用无头浏览器实现您想要的效果,方法是渲染整个页面并重复单击“更多”链接,直到没有更多内容可供加载。由于您已经在使用 Requests,因此另一个可能有效的选项是 Requests-HTML,它也支持通过调用.html.render()响应对象进行动态渲染。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5