Web动态javascript内容抓取网站

问题描述:

所以我使用python和beautifulsoup4(我没有绑定)来刮一个网站。问题是当我使用urlib抓取页面的html时,它不是整个页面,因为它的一部分是通过javascript生成的。有什么办法可以解决这个问题吗?Web动态javascript内容抓取网站

+0

[尝试过的Python BeautifulSoup和Phantom JS:STILL无法抓取网站](http://*.com/questions/22028775/tried-python-beautifulsoup-and-phantom-js-still-cant-刮网站) –

基本上有继续进行两个主要选项:

  • 使用浏览器的开发者工具,看看Ajax请求要加载网页和你的脚本模拟它们,你可能会需要使用json模块将响应json字符串加载到python数据结构中
  • 使用像selenium这样的工具可以打开真正的浏览器。该浏览器也可以是“无头”,见Headless Selenium Testing with Python and PhantomJS

第一个选项是更难以实施和它的,一般来讲,更脆弱,但它并不需要真正的浏览器,并可以更快。

第二种选择是更好的方面,你得到什么其他真正的用户得到什么,你不会担心如何加载页面。 Selenium在页面上的locating elements功能非常强大 - 根本不需要BeautifulSoup。但是,无论如何,这个选项比第一个慢。

希望有所帮助。