我需要从一些包含一些 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>
任何帮助,将不胜感激。谢谢!