Web使用动态javascript内容抓取网站

时间:2014-03-28 14:03:50

标签: javascript python web-scraping beautifulsoup html-parsing

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

1 个答案:

答案 0 :(得分:9)

基本上有两个主要选项可供选择:

  • 使用浏览器开发人员工具,查看ajax请求将加载页面并在脚本中模拟它们,您可能需要使用json模块将响应json字符串加载到python数据结构中
  • 使用像selenium这样的工具打开真正的浏览器。浏览器也可以是"无头",请参阅Headless Selenium Testing with Python and PhantomJS

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

第二个选项在获得任何其他真实用户获得的内容方面更好,您不会担心页面的加载方式。 Selenium在页面上locating elements非常强大 - 您可能根本不需要BeautifulSoup。但是,无论如何,这个选项比第一个慢。

希望有所帮助。