【问题标题】:Scraping ajax pages which return javascript files that generate html nodes抓取返回生成 html 节点的 javascript 文件的 ajax 页面
【发布时间】:2014-12-12 13:28:38
【问题描述】:

有些页面不会在 ajax 上返回原始数据(如 json 或 xml 或 html)。相反,他们使用像 dojo 这样的框架,其中 ajax 调用返回 js 文件,这些文件以某种方式填充 html 节点。

我想知道是否有非 Selenium 策略可以从这些页面中抓取数据。

【问题讨论】:

  • 据我所知你需要一个浏览器。如果您不想要硒,请尝试 phantomjs 或类似的。你试过jeanphix.me/Ghost.py吗?
  • @gosom Phantomjs 非常酷,并且在我当前的本地实现中运行良好。缺点是速度很慢。我在将代码部署到 heroku 时也遇到了问题,所以我想知道是否有更好的方法。

标签: python web-scraping


【解决方案1】:

除了基于seleniumwebkit 的方法之外,您还可以使用javascript 代码解析器解析javascript,例如slimit。它肯定会提高网络抓取的复杂性和可靠性,因为你可以使用它来使用裸机 - 将其视为一种“白盒”方法,而不是基于 selenium 的高级“黑盒”方法。

这是我针对您所询问的完全相同的主题/问题给出的答案:

它涉及使用slimit从javascript代码中抓取一个对象,通过json模块将其加载到python数据结构中,并使用BeautifulSoup解析器解析其中的HTML。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 2011-01-10
    • 2022-01-15
    • 2021-12-16
    • 2014-10-10
    • 1970-01-01
    相关资源
    最近更新 更多