requests库能否强制页面加载所有JavaScript动态内容再保存页面内容

6 投票
1 回答
2863 浏览
提问于 2025-04-18 06:57

BeautifulSoup通常可以用来(1)把网页的内容存储到一个变量里,和(2)解析网页中的元素。

不过,单靠BeautifulSoup是无法打开那些需要密码的HTTP错误403页面的。所以我用了requests库来处理这个问题。

现在我在想,requests库是否有能力强制让网页上的JavaScript加载呢?

我使用的是python2.7。

requests库是否有类似于requests.open(某个网址).forceJavascriptLoad这样的功能呢?

1 个回答

3

不,Requests库无法执行JavaScript代码。要实现你想要的功能,你需要一个叫做“无头”浏览器的东西。这里有一些无头浏览器的列表。作为建议,我推荐你试试PhantomJS,虽然它不是用Python写的,但相比其他无头浏览器,它有几个优点:

  1. 设置和使用都很简单
  2. 正在积极开发中,没有像其他很多无头浏览器那样被遗弃
  3. 对JavaScript的支持非常好
  4. 运行速度快
  5. 提供预编译的二进制文件,以防你在编译时遇到问题

我自己尝试过很多无头浏览器,只有PhantomJS让我满意。如果你还是想试试基于Python的无头浏览器,可以试试Ghost

撰写回答