2012-09-13 41 views
1

可能重複:
Make a JavaScript-aware Crawler網站刮板是處理JavaScript

我想弄清楚,作爲一個基於PHP網頁刷屏,能夠處理網頁的基礎上使用什麼使用JavaScript進行渲染。除非這些頁面中的JS被執行,否則許多網站刮擦嘗試(至少我處理的)現在失敗。這些頁面不是爲了適當地回退到無腳本實現而構建的。這包括那些大量使用AJAX的。

任何人都可以從哪裏開始開發一個可以處理現代和嚴重依賴JavaScript的網頁的網頁抓取工具?

PHP可以使用的東西是最好的。

+0

你在刮什麼頁?爲了什麼內容? – 2012-09-13 21:05:11

+0

你不能用PHP刮掉一個JS頁面 –

+0

@Dragon很多不同的頁面有很多不同的內容。有些網站在沒有JS的情況下根本無法運行。對不起,聽起來含糊不清。其中一些是爲客戶提供的私人工作。 – eComEvo

回答

2

可以在無頭模式下使用Web瀏覽器引擎來加載頁面並分析DOM。一些谷歌搜索指向我http://phantomjs.org/

+0

這可能會使用[pjscrape](http://nrabinowitz.github。com/pjscrape /)與一個PHP網址通過使用jQuery來處理被刮取的結果到數據庫。 – eComEvo

1

那些ajax使用量很大的網站,只需調用與網頁相同的網址,然後在該響應中構建網站內容而不是請求網頁。

有沉重的文件撰寫或框架等價物,你很可能只是用簡單的正則表達式剝離空間或匹配的標籤或相關內容,並再次這些網站要求腳本負責,而不是要求它的網頁...

0

你將不得不在PHP中有一個JavaScript引擎。或者在命令行中使用一些無頭Webkit。即使如此,它會變得非常複雜。所以簡短的回答是:不,對不起,你不能那樣做。

0

PHP支持V8引擎,所以我想你可以通過JavaScript到V8。雖然不是一件好事,但我會使用別的東西而不是直接的PHP來做到這一點。

1

你可以使用Selenium這是一個瀏覽器自動化工具,然後使用PHP綁定herehere之一,or here這樣你就可以從PHP自動硒。

+0

硒看起來很有用。可能對我想到的其他一些應用程序非常有幫助。謝謝! – eComEvo