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

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

【问题讨论】:

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


【解决方案1】:

基本上有两个主要选择:

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

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

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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-13
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多