我目前在C#中使用HTML Agility Pack作爲網絡爬蟲。到目前爲止,我設法避免了很多問題(無效的URI,例如「/extra/url/to/base.html」和「#」鏈接),但我也需要處理PHP,Javascript等。站點,鏈接都在PHP中,當我的網絡爬蟲嘗試導航到這些網站時,它會失敗。一個例子是PHP/Javascript手風琴鏈接頁面。我將如何去導航/解析這些鏈接?Web爬蟲解析PHP/Javascript鏈接?
4
A
回答
6
讓我們看看我是否正確理解你的問題。我知道這個答案可能不足,但如果你需要更具體的答案,我需要更多的細節。
你想編寫一個網絡爬蟲,但它無法抓取與.PHP結尾的網址?
如果是這種情況,你需要退後一步,思考爲什麼。這可能是因爲抓取程序使用基於URI方案的正則表達式來選擇要抓取哪些URL。
在大多數情況下,這些URL只是普通的HTML,但它們也可能是一個生成的圖像(如驗證碼)或700mb iso文件的下載鏈接 - 並且沒有辦法確定沒有檢出標題來自該URL的HTTP響應。
注意:如果您要從頭開始編寫自己的抓取工具,您需要對HTTP有很好的理解。
抓取工具在獲取URL時首先要看到的是包含MIME content-type的標頭 - 它告訴瀏覽器/抓取工具如何處理和打開數據(HTML,普通文本,.exe,等等)。您可能需要基於MIME類型而不是URL方案下載頁面。 HTML的MIME類型爲text/html
,您應該在下載URL的其餘內容之前使用您正在使用的HTTP庫檢查該內容。
JavaScript的問題
同上除了在爬行器中運行的JavaScript /分析器是簡單的項目非常罕見,比它解決可能會造成更多的問題。爲什麼你需要Javascript?
一個不同的解決
如果你願意學習Python(或已經知道了),我建議你看看Scrapy。這是一個類似於Django web framework的網頁抓取框架。使用起來非常簡單,許多問題已經得到解決,因此如果您想了解有關該技術的更多信息,這可能是一個很好的起點。
相關問題
- 1. Gevent鏈接爬蟲
- 2. Scrapy遞歸鏈接爬蟲
- 3. Java Web爬蟲庫
- 4. 從Web頁面(Web爬蟲)中提取所有鏈接
- 5. 解析器/爬蟲算法問題
- 6. Python爬蟲。解析並執行ajax
- 7. 解析HTML的網絡爬蟲
- 8. 反向鏈接報告網站爬蟲?
- 9. C#web和ftp爬蟲庫
- 10. Web爬蟲的Rx框架
- 11. c#基於web的爬蟲
- 12. 抓取基於鏈接的網頁爬蟲/蜘蛛鏈接
- 13. Python爬蟲 - html.fromstring
- 14. 網絡爬蟲
- 15. Python的爬蟲?
- 16. 爬蟲實例
- 17. 如何使用Node.js創建Web爬蟲?
- 18. 如何在ASP.NET中創建Web爬蟲?
- 19. 如何停止解析函數中的爬蟲程序
- 20. 網絡爬蟲是否僅依靠主頁上的鏈接來進行爬網?
- 21. 做爬蟲解碼html實體?
- 22. 抓取一些鏈接後網站禁止爬蟲
- 23. 以下鏈接,Scrapy網頁爬蟲框架
- 24. 谷歌爬蟲怎麼看jQuery的鏈接重定向
- 25. 電子郵件鏈接被阻止的網頁爬蟲
- 26. 簡單的爬蟲在PHP中回顯鏈接
- 27. 建議 - C#/。NET鏈接搜索/網絡爬蟲框架
- 28. C#URL爬蟲沒有得到足夠的鏈接?
- 29. PHP中的網頁爬蟲鏈接/頁面邏輯
- 30. 鏈接爬蟲(用於下載或開發)
如果您要抓取網站,您如何看到實際的PHP代碼?通常情況下,PHP是由Web服務器執行以生成HTML,因此您根本無法看到PHP源代碼,只能看到它的執行效果。或者我不明白「PHP ... accordion link page」是什麼意思;你能給個例子嗎? – 2010-02-23 08:10:37