网页抓取具有动态 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 内容的网站的主要内容,如果未能解决你的问题,请参考以下文章
实例:使用puppeteer headless方式抓取JS网页