首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在python上使用requests-html库运行JavaScript

无法在python上使用requests-html库运行JavaScript
EN

Stack Overflow用户
提问于 2020-01-24 07:22:20
回答 1查看 644关注 0票数 1

我需要从一些包含javascript代码的链接中提取一些信息。我知道如何使用Selenium,但这需要很多时间,我需要更有效的方法来完成这项工作。

我查看了requests html库,就我的目的而言,它看起来相当健壮,但不幸的是,我看起来不能用它来运行javascript。

我从下面的链接https://requests-html.readthedocs.io/en/latest/阅读了文档

并尝试了以下代码:

代码语言:javascript
复制
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。这部分的代码如下:

代码语言: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)

我得到的回应是:

代码语言:javascript
复制
<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>

任何帮助都将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-08-13 10:32:07

这应该可以在网站上工作。但是正如你所提到的,代码可以在StackOverflow上工作,但不能在另一个URL上工作?是因为服务器可能没有响应,还是因为您正在查找的标记可能在那时不可用。但不管怎样,requests-HTML应该会给你一个错误。

我正要检查您的问题并将其添加到我的博客帖子How to use Requests-HTML中,但不幸的是,您提供的链接不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59888438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档