我需要从一些包含javascript代码的链接中提取一些信息。我知道如何使用Selenium,但这需要很多时间,我需要更有效的方法来完成这项工作。
我查看了requests html库,就我的目的而言,它看起来相当健壮,但不幸的是,我看起来不能用它来运行javascript。
我从下面的链接https://requests-html.readthedocs.io/en/latest/阅读了文档
并尝试了以下代码:
from requests_html import HTMLSession,HTML
from bs4 import BeautifulSoup
session = HTMLSession()
resp = session.get("https://drive.google.com/file/d/1rZ-DhTFPCen6DvJXlNl3Bxuwj4-ULwoa/view")
resp.html.render()
soup = BeautifulSoup(resp.html.html, 'lxml')
email = soup.find_all('img', {'class':'ndfHFb-c4YZDc-MZArnb-BA389-YLEF4c'})
print(email)运行这段代码后,我没有得到任何结果,即使类存在,如果我从我的浏览器打开链接。
我还尝试在没有帮助的情况下对我的请求使用头文件。我为另一个链接(https://web.archive.org/web/*/stackoverflow.com)尝试了相同的代码(当然,带有不同的html标签),但我得到了一些html文本,其中包括一个响应,说明我的浏览器必须支持javascript。这部分的代码如下:
from requests_html import HTMLSession
from bs4 import BeautifulSoup
session = HTMLSession()
resp = session.get("https://web.archive.org/web/*/stackoverflow.com")
resp.html.render()
soup = BeautifulSoup(resp.html.html, 'lxml')
print(soup)我得到的回应是:
<div class="no-script-message">
The Wayback Machine requires your browser to support JavaScript, please email <a href="mailto:info@archive.org">info@archive.org</a><br/>if you have any questions about this.
</div>任何帮助都将不胜感激。谢谢!
发布于 2021-08-13 10:32:07
这应该可以在网站上工作。但是正如你所提到的,代码可以在StackOverflow上工作,但不能在另一个URL上工作?是因为服务器可能没有响应,还是因为您正在查找的标记可能在那时不可用。但不管怎样,requests-HTML应该会给你一个错误。
我正要检查您的问题并将其添加到我的博客帖子How to use Requests-HTML中,但不幸的是,您提供的链接不起作用。
https://stackoverflow.com/questions/59888438
复制相似问题