我一直在使用正則表達式在PHP中進行一些html抓取。這有效,但結果是挑剔和脆弱。有沒有人使用過任何提供更強大解決方案的軟件包?一個配置驅動的解決方案將是理想的,但我不挑剔。HTML Phraping在Php
回答
在從頁面中獲取HTML後,我會推薦PHP Simple HTML DOM Parser。它支持無效的HTML,並提供了一種處理HTML元素的非常簡單的方法。
建議使用[SimpleHtmlDom](http://simplehtmldom.sourceforge.net/)的第三方替代方案,它實際使用[DOM](http://php.net/manual/en/book.dom.php)而不是字符串解析:[phpQuery](http://code.google.com/p/phpquery/),[Zend_Dom](http://framework.zend.com/manual/en/zend.dom.html),[QueryPath]( http://querypath.org/)和[FluentDom](http://www.fluentdom.org)。 – Gordon 2011-10-10 15:08:39
你能給我舉個例子來點擊給定頁面上的任何鏈接嗎? – 2013-11-12 07:51:32
如果您正在抓取的頁面是有效的X(HT)ML,則可以使用PHP's built-in XML parsers中的任何一個。
我還沒有取得太多的成功與PHP庫的刮。如果你冒險,但你可以嘗試simplehtmldom。我建議使用Ruby的Hpricot或Python的Beautiful Soup,它們都是優秀的用於HTML的解析器。
如果您打算解析特別潦草的HTML,請確保您不使用BeautifulSoup 3.1.x(使用3.0.x)。 3.1.x使用htmllib作爲它的解析器,這比3.0.x對sgmllib的使用寬鬆得多。 – Tom 2009-03-18 01:33:03
我已經與上面提到的Simple Html DOM Parser結果非常好。然後還有tidy Extension for PHP,它的效果也非常好。
我和htmlSQL一起工作很有趣,這不是一個高端解決方案,但非常簡單。
使用PHP進行HTML抓取,儘管我個人使用cURL + regexp,但我推薦使用cURL + regexp或cURL +一些DOM解析器。如果你對regexp有深刻的印象,有時候它確實更精確。
我也推薦'Simple HTML DOM Parser'。這是一個很好的選擇,特別是如果你熟悉jQuery或JavaScript選擇器,那麼你會發現自己在家裏。
我必須對我的主機的1and1使用捲曲。
http://www.quickscrape.com/是我想出的使用簡單的DOM類!
- 1. 圍HTML在PHP
- 2. PHP在html中獲取html
- 3. 走通HTML在PHP
- 4. HTML淨化在PHP
- 5. PHP塊未在HTML
- 6. PHP在.html文件
- 7. HTML在PHP郵件
- 8. PHP代碼在HTML
- 9. 迴響在HTML/PHP
- 10. 在html中使用php代碼...在php
- 11. 如何在使用PHP封裝HTML時在HTML內寫入PHP
- 12. 所有模式嵌入的PHP在HTML和HTML在PHP
- 13. html然後php再html html
- 14. php include html html css
- 15. 如何在PHP中添加HTML以HTML
- 16. PHP - HTML
- 17. PHP緩存(HTML + PHP)
- 18. 包含在PHP回聲內PHP和HTML
- 19. PHP:如何打印PHP語法在HTML
- 20. 在PHP的HTML標記中輸出PHP
- 21. php在.php文件中的html
- 22. 如何在PHP訪問HTML選擇值,HTML嵌入PHP
- 23. PHP HTML在.HTML文檔中嵌入PHP標籤這可能嗎?
- 24. PHP回聲在HTML表
- 25. PHP在HTML <Script>
- 26. html php回覆在div
- 27. 解析HTML文件在PHP
- 28. PHP:返回HTML在$就
- 29. PHP在HTML - 顯示錶
- 30. HTML在PHP郵件顯示
看看[this](http://stackoverflow.com/questions/26947/how-to-implement-a-web-scraper-in-php#27109)線程 - 問題進入類似的方向 – crono 2008-08-29 08:16:06