Web抓取具有动态javascript内容的网站
因此,我正在使用python和beautifulsoup4(我不受其约束)来抓取网站。问题是当我使用urlib抓取页面的html时,它不是整个页面,因为其中一些是通过javascript生成的。有什么办法可以解决这个问题?
-
基本上有两个主要选项可以继续:
- 使用浏览器开发人员工具,查看哪些ajax请求将加载页面并在脚本中模拟它们,您可能需要使用json模块将响应json字符串加载到python数据结构中
- 使用诸如硒之类的工具打开真正的浏览器。浏览器也可以是“无头的”,请参阅使用Python和PhantomJS进行无头硒测试
第一个选项更难以实现,并且通常来说更脆弱,但是它不需要真正的浏览器,并且可以更快。
第二种选择是更好的,因为您可以获得其他任何实际用户所得到的东西,并且您不必担心页面的加载方式。Selenium在定位页面上的元素方面非常强大-
您可能根本不需要BeautifulSoup
。但是,无论如何,此选项比第一个慢。希望能有所帮助。