2014-02-23 73 views
0

注意:我是一个新手。这个问题在手头的问题中很明显。用Python刮写Javascript

我需要从以下网站刮去等待时间:

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?

另外,如果你的答案会混淆一个三岁的孩子,这很可能我 - 所以请记住这一点:)

回答

0

如果它是一个简单的任务,我仍然建议PhantomJS/CasperJS

移植它通常是简单的创建与xvfb

虚拟显示我已经受够了CasperJS一些经验的问题,我觉得很愉快,因为我需要改变,一个完整的框架上移动到Scrapy前工作是必需的(也许试试吗?)

1

没有必要执行JavaScript。

+0

你怎么知道第一个网站会有一个JSON输出链接?第二,我可以去每个RSS页面,但它仍然产生相同的问题,我不能刮标签广告产生结果。 “拉文件”是什么意思?就像我说的:newb。 – JJThaeler

+0

它必须从某处加载数据,并且JSON是一种非常常见的方式。要查找该URL,请仔细阅读其所有代码,或者直接使用Chrome开发工具或Firebug,并在刷新页面时监控哪些文件已加载。对于第二个网站:对于一组文档,我的意思是每个医院都有这样的URL下的数据,只是设施代码是不同的。 –