我正在建立一個系統,我需要抓住一個網頁的內容與PHP,然後解析它來提取某些表等。有沒有一種簡單的方法用jQuery來做到這一點,或者最好的方法是編寫PHP函數來提取數據?抓住一個PHP的網站,然後遍歷它與jQuery
回答
jQuery與PHP無關,無法在沒有瀏覽器的情況下運行,因此您在那裏運氣不佳。
但是,有phpQuery,允許使用jQuery的選擇器進行DOM解析!
實際上,jQuery可以在沒有瀏覽器(Rhino,V8等)的情況下運行......但那不重要。這只是一個小附錄。 – Frankie 2010-11-03 20:09:23
非常好,這就是我要找的!謝謝! – greenimpala 2010-11-03 20:21:41
您可以使用現有的DOM函數在PHP http://php.net/manual/en/book.dom.php
你不能。 jQuery適用於JavaScript,它是客戶端,需要執行JavaScript引擎。
我建議你將HTML閱讀爲XML,但如果HTML不是XHTML有效的話,你會遇到各種各樣的麻煩。
這是真棒
http://sourceforge.net/projects/simplehtmldom/
例如:
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
不要這樣做。我以前一直都在使用simplehtmldom,但糖蜜的速度很慢。使用內置的dom函數。它們快了一個數量級。這是一個基準來證明它:http://whitlock.ath.cx/FastCrawl/benchmark.php – 2010-11-03 20:08:41
可以同意,但我有一些問題與DOM不想解析有時由於編碼問題(反正該文件是UTF-8) ..至少在我的本地主機上 – vertazzar 2010-11-03 20:19:56
做這樣的PHP中的PHP本身的DOM functions和XPath:
$dom = new DOMDocument();
@$dom->loadHTML($html);
$x = new DOMXPath($dom);
// grab all tables with id of foo
foreach($x->query("//table[@id='foo']") as $node)
{
// here is the html
echo $node->c14n();
// grab the containing text
echo $node->textContent()
}
有幾個PHP包,可以幫助你,這個,curl,dom和xpath 。
這是a good tutorial我以前用過。
- 1. Javascript抓住然後承諾
- 2. 抓住一個特定的錯誤,然後再試一次
- 3. 抓住所有網站抓住所有重新渲染css
- 4. 遍歷柱然後劃
- 5. 隨機化Django查詢集一次,然後遍歷它
- 6. DOM遍歷與jQuery
- 7. 遍歷SVG與PHP
- 8. 抓住一個腳本並重新加載它? jQuery的
- 9. 在網站上抓住Facebook feed
- 10. jQuery - 點擊X,抓住NAME,然後用它顯示相關元素
- 11. php preg_match抓住
- 12. 抓住一個文本,然後提交文本到一個特定的路線
- 13. jQuery網格遍歷方法
- 14. 抓住一個特定鏈接的目標與PHP
- 15. 存儲記錄然後遍歷它們的最佳方式?
- 16. 這是簡單的抓取與多個網站,但它無法
- 17. PHP - 遍歷信向後
- 18. 遍歷PHP和使用jQuery
- 19. 我抓住屏幕的圖像然後裁剪它後失去分辨率?
- 20. 抓住YouTube的視頻ID與Jquery&.match()
- 21. 抓住MySQL的信息在PHP與vb.net
- 22. 抓住無名(?)的JSON數據與PHP
- 23. jQuery。每個不遍歷所有後代
- 24. 從一個網站抓取日期並放到日曆中
- 25. 抓取網站使用PHP
- 26. bash參數在一個變量中,然後循環遍歷
- 27. PHP抓住從線
- 28. php爬蟲(抓取單個網站)
- 29. jQuery移動元素然後釘住它並水平移動它
- 30. 的jQuery遍歷
這可能也有幫助:http://stackoverflow.com/questions/292926/ – mdo 2010-11-03 20:54:25