我需要知道如何創建一個刮板(用Java)來從HTML頁面收集數據並輸出到數據庫......不知道從哪裏開始你可以給我的任何信息都會很棒。此外,您不能在這裏太基本或簡單...謝謝:)使用Java從HTML頁面中刮取數據,輸出到數據庫
回答
首先,您需要熟悉Java中的HTML
DOM
解析器,如JTidy。這將幫助你從HTML
文件中提取你想要的東西。一旦你有了基本的東西,你可以使用JDBC
來輸入database
。
對這項工作使用正則表達式可能很誘人。但是不要。 HTML不是一種常規語言,因此正則表達式不是一種正確的方式。
很大一部分網站建立在格式不正確的HTML代碼上。
請務必使用類似HtmlCleaner的東西來清理要解析的源代碼。
然後,您可以成功使用XPath提取節點和正則表達式來解析您從頁面提取的字符串的特定部分。
至少這是我使用的技術。
您可以使用從HtmlCleaner返回的xHtml作爲您的應用程序與您嘗試解析的遠程頁面之間的一種界面。您應該對此進行測試,如果遠程頁面發生更改,您只需提取由HtmlCleaner清除的新xHtml,重新調整XPath查詢以提取所需內容,並針對新界面重新測試您的應用程序代碼。
如果您想創建一個MultiThreaded'scraper',請注意HtmlCleaner不是線程安全的(請參閱我的post here)。
這個post可以讓你知道如何使用XPath解析格式正確的xHtml。
祝你好運! ;)
注意:在我實施Scraper的時候,HtmlCleaner在規範化我想分析的頁面方面做得更好。在某些情況下,jTidy在做同樣的工作時失敗了,所以我建議你試一試
我成功地在一個刮掉HTML頁面的項目中使用了lobo browser API。 lobo瀏覽器項目提供了一個瀏覽器,但你也可以很容易地使用它後面的API。它也會執行javascript,如果該JavaScript操作DOM,那麼當您調查DOM時,這也會反映在DOM中。所以,簡而言之,API允許你模仿瀏覽器,你也可以使用cookie和東西。
現在爲了從HTML中獲取數據,我首先將HTML轉換爲有效的XHTML。你可以use jtidy for this。由於XHTML是有效的XML,因此可以使用XPath輕鬆檢索想要的數據。如果您嘗試編寫解析原始HTML數據的代碼,您的代碼將很快變得混亂。因此我會使用XPath。
一旦你的數據,你可以用JDBC將其插入到一個數據庫或者也許,如果你想避免寫太多SQL
使用JTidy你可以從報廢的HTML數據使用Hibernate的。那麼你可以使用JDBC。
我使用JSoup運行刮板我是一個noob,但發現它非常直觀,易於使用。它也能夠解析各種各樣的或源html,XML,RSS等。
我用htmlunit進行了實驗,幾乎沒有成功。
- 1. 從node.js獲取數據到HTML頁面
- 2. 從數據庫導出數據到HTML?
- 3. 從網頁中颳去數據。 Java,HTMLUnit
- 4. 從html表格中刮取數據
- 5. 如何將數據輸入到網頁以使用Python刮取結果輸出?
- 6. 從數據庫中獲取數據到主django管理頁面
- 7. 如何使用java從html頁面獲取數據?
- 8. 使用Java從網頁上刮取數據?
- 9. 從網頁上刮取網頁數據
- 10. 使用rvest來刮取HTML數據
- 11. 使用BeautifulSoup4刮取HTML表格數據
- 12. 導入從HTML頁面JSONP數據,然後輸出到CSV
- 13. 如何動態刮取頁面數據?
- 14. Joomla 2.5製作頁面從數據庫中獲取數據並導出到excel
- 15. 使用Python的網頁刮取數據
- 16. 從GroupGrid中刮取數據
- 17. 使用Ruby刮取圖片數據庫
- 18. 從MySQL數據庫獲取內容到html頁面
- 19. 如何使用Servlet從數據庫中顯示HTML頁面中的數據?
- 20. 使用數據庫存儲和獲取網頁的html頁面
- 21. 從數據庫獲取最新數據到jsp頁面
- 22. 如何從mysql數據庫獲取數據到JSP頁面?
- 23. 直接從數據庫輸出html
- 24. HTML頁面未連接到數據庫
- 25. 從數據庫輸出切換到編輯數據輸出
- 26. 顯示從數據庫中提取的數據,基於html表單輸入並顯示在html頁面中
- 27. HtmlAgilityPack從html頁面讀取數據
- 28. 從HTML頁面提取csv數據
- 29. 從HTML頁面提取數據(Python)
- 30. 使用python刮取數據
我以前做過這些事情,我發現JTidy有點脆弱。我會去與tagsoup:http://home.ccil.org/~cowan/XML/tagsoup/ – radai 2010-03-19 04:49:19