网页抓取具有动态 javascript 内容的网站

Posted

技术标签:

【中文标题】网页抓取具有动态 javascript 内容的网站【英文标题】:Web scraping a website with dynamic javascript content 【发布时间】:2014-05-08 01:04:51 【问题描述】:

所以我使用 python 和 beautifulsoup4(我没有绑定)来抓取网站。问题是当我使用 urllib 获取页面的 html 时,它不是整个页面,因为其中一些是通过 javascript 生成的。有没有办法解决这个问题?

【问题讨论】:

Tried Python BeautifulSoup and Phantom JS: STILL can't scrape websites 的可能重复项 【参考方案1】:

基本上有两个主要选择:

使用浏览器开发工具,看看哪些ajax请求将加载页面并在你的脚本中模拟它们,你可能需要使用json模块将响应json字符串加载到python数据结构中 使用像selenium 这样的工具来打开一个真正的浏览器。浏览器也可以“无头”,见Headless Selenium Testing with Python and PhantomJS

第一个选项更难实现,一般来说更脆弱,但它不需要真正的浏览器并且速度更快。

第二个选项更好,因为您可以获得任何其他真实用户所获得的内容,并且您不必担心页面是如何加载的。 Selenium 在页面上的locating elements 中非常强大——你可能根本不需要BeautifulSoup。但是,无论如何,这个选项比第一个慢。

希望对您有所帮助。

【讨论】:

以上是关于网页抓取具有动态 javascript 内容的网站的主要内容,如果未能解决你的问题,请参考以下文章

如何抓取网页中的动态数据

使用 python 抓取网页动态内容

实例:使用puppeteer headless方式抓取JS网页

selenium官网是动态网页吗

用爬虫抓取网页得到的源代码和浏览器中看到的不一样运用了啥技术?

怎么爬取网页的动态内容,很多都是js动态生