【问题标题】:Scraping Javascript with Python用 Python 抓取 Javascript
【发布时间】:2014-02-23 14:56:19
【问题描述】:

注意:我是新手。这在手头的问题中很明显。

我需要从以下网站获取等待时间:

https://www.floridahospital.com/locations/er-wait-times

http://www.centura.org/erwait

我尝试通过 XPath 和 lmxml 以及通过 DOM 和 BeautifulSoup 进行抓取。有人告诉我,因为这些值没有加载到源代码中,所以它们是用 Javascript 呈现的。所以,我研究了用 Python 抓取 JS 元素。

对我来说,Selenium 看起来有点过头了,因为我不需要点击任何东西——内容加载,而不是直接在我可以抓取的 HTML 中。 PhantomJS 需要用 JS 编写,我读到有人在将其移植到 AWS 或非 GUI 服务器时遇到问题。

我看过 Ghost.py,它看起来与 BS4 兼容,所以可能是最简单的。

获取这些等待时间的最简单方法是什么?他们是在加载 JS 吗?

另外,如果你的回答会让一个蹒跚学步的孩子感到困惑,那很可能是我 - 所以请记住这一点 :)

【问题讨论】:

    标签: javascript python xpath web-scraping beautifulsoup


    【解决方案1】:

    无需执行 JavaScript。

    【讨论】:

    • 你怎么知道第一个站点会有一个 JSON 输出链接?第二,我可以访问每个 RSS 页面,但它仍然会产生相同的问题,我无法抓取标签广告产生结果。 “拉集文件”是什么意思?就像我说的:新手。
    • 必须从某个地方加载数据,而 JSON 是一种非常常见的方式。要找到 URL,要么通读他们的所有代码,要么只启动 Chrome 开发工具或 Firebug,然后监视在刷新页面期间加载了哪些文件。对于第二个站点:对于一组文档,我的意思是每个医院的数据都在这样的 URL 下,只是设施代码不同。
    【解决方案2】:

    如果这是一项简单的任务,我会仍然推荐PhantomJS/CasperJS

    移植它通常只是用xvfb创建一个虚拟显示器

    我在 CasperJS 方面有过一些经验,在转到 Scrapy 之前我发现它非常愉快,因为我的需求发生了变化并且需要一个完整的框架(也许可以尝试一下?)

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 1970-01-01
      • 2011-01-10
      • 2022-01-08
      • 2014-02-22
      • 1970-01-01
      相关资源
      最近更新 更多