大家好!我將編寫網站抓取程序,它從根地址開始,然後抓取每個找到的鏈接(僅限內部鏈接)。所以我面臨這個問題: 爬蟲必須從根開始,然後它應該解析網頁(根頁面),然後獲取所有鏈接。在獲取鏈接時,它不應該抓取同一頁面兩次。夥計們有沒有好的數據結構,還是我需要使用SQL或其他索引數據結構?爬行器的數據結構
Q
爬行器的數據結構
1
A
回答
1
我建議你在這裏檢查出我的回答:Designing a web crawler和How can I bring google-like recrawling in my application(web or console)
我已經回答了很多你問的問題。關鍵之處在於,抓取工具使用URL-Seen測試來有效地確定是否應該抓取鏈接。 URL-Seen測試通常使用快速解析鍵(地址)的地圖結構來實現。常用的解決方案是嵌入式數據庫,如leveldb,berkeleydb和其他NOSQL解決方案。
4
您可能要查找的數據結構是Tree。
對於抓取工具,不需要,因爲從根開始,您可以維護已訪問URL的「列表」,並且每次您要關注鏈接時,檢查是否遇到過之前。如果尚未遇到,則將其添加到列表中並按照它進行操作。
雖然它不一定是一個列表(即數組),但它可以是一個dictionary或其他數據結構,這將有助於加速搜索。
它也可能是一個SQL數據庫或類似像redis這樣的鍵值存儲。如果您使用類似的東西,那麼所有的索引和查詢都會通過數據庫系統提交給您,您可以通過它與標準方法(SQL,特殊API,其他)進行通信。
但是,這很容易,在「抓取」時需要考慮一些更重要的事情,也許最好先檢查一下您是否正在嘗試使用already available crawler。
相關問題
- 1. 數據流/爬行體系結構設計
- 2. 使用JPA的數據庫爬行器
- 3. 非結構化數據的網絡爬蟲
- 4. 硒用美麗的湯爬行不同的html結構
- 5. 反爬行器 - Python
- 6. 卡住Scrapy上的數據爬行
- 7. Scrapy履帶爬行額外的數據
- 8. 音頻編輯器的數據結構
- 9. 傳感器數據的mongodb結構
- 10. 內存管理器的數據結構
- 11. 數據結構
- 12. 數據結構
- 13. 數據結構
- 14. 數據結構++
- 15. 數據結構
- 16. 數據結構
- 17. 數據結構
- 18. 排行榜的高效數據結構
- 19. PHP的網絡爬蟲,數據結構和存儲,它會與PHPCrawl?
- 20. SQL服務器 - 在樹結構中爬升
- 21. 數字索引數據結構的最快數據結構?
- 22. 編譯時數據數組結構以外的數據結構?
- 23. Python爬行器美麗分解()函數
- 24. PySpark - 將python數據結構轉換爲執行器上的RDD
- 25. 樹數據結構的數據庫結構
- 26. iOS的CF數據結構VS NS數據結構
- 27. 存儲特定結構化數據的最佳數據結構
- 28. 在數據庫結構與節點的樹狀數據結構
- 29. 爬行器閱讀pdf
- 30. Sitecore高級數據庫爬行器空日期