首页 > 解决方案 > 如何检测网页是否从 Python 中的 Javascript 动态呈现?

问题描述

我正在构建一个网络爬虫,它必须从 HTML 中快速检索网页的文本。我正在使用 Python,requests并且BeautifulSoup. 我想检测网页内容是纯 HTML 还是从 Javascript 呈现的。在最后一种情况下,我只会返回一条错误消息,说明无法完成。

我知道无头浏览器可以渲染 Javascript,但在这种情况下,我真的只需要以最快的方式检测它,而不必渲染它。

检测标签实际上是不可能的,script因为每个网页中都有很多标签,这并不意味着文本内容必须以 Javascript 呈现。

有什么我可以检查的 HTML 准确地告诉我正文内容将从 Javascript 呈现吗?

谢谢

标签: javascriptpythonhtmlweb-scrapingpython-requests

解决方案


初始 DOM 中没有任何内容事先显示该站点是使用 js 呈现的。这些是您可以尝试的一些东西:

  • 分析几个网站,根据页面的内容大小,猜测网站在哪里用js渲染。
  • 您还可以获取站点不同页面的 html 并比较内容长度(对于 js 渲染的站点,在执行任何代码之前,不同页面的内容可能相同/相似)。
  • 检查脚本的内容大小或检测 React、vue 和 Angular 等著名技术的脚本名称

推荐阅读