2014-02-23 104 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下的數據,只是設施代碼是不同的。 –