使用Java进行Web抓取

我无法find任何好的网页抓取基于Java的API。 我需要刮的网站也不提供任何API; 我想使用一些pageID遍历所有的网页,并提取他们的DOM树中的HTML标题/其他东西。

除了网页抓取以外,还有其他的方法吗?

谢谢

提取标题并不困难,而且您有很多选项,请在此处查找“ Java HTMLparsing器 ”的堆栈溢出。 其中之一是Jsoup 。

如果您知道页面结构,则可以使用DOM导航页面,请参阅http://jsoup.org/cookbook/extracting-data/dom-navigation

这是一个很好的图书馆,我已经用它在我的最后一个项目。

你最好的select是使用Selenium Web Driver

  1. 向编码器提供视觉反馈(请参阅您的实际操作,查看停止的位置)
  2. 准确和一致,因为它直接控制你使用的浏览器。
  3. 慢。 不像HtmlUnit那样打网页,但有时你不想打得太快。

    Html单元速度很快,但在处理Javascript和AJAX时很糟糕。

HTMLUnit可以用来做网页抓取,它支持调用页面,填写和提交表单。 我在我的项目中使用了这个。 这是一个很好的networking抓取Java库。 在这里阅读更多

机械化的Java将是一个很好的适合这个,作为Wadjy Essam提到它使用JSOUP的HMLT。 mechanize是一个HTTP / HTML客户端,支持导航,表单提交和页面抓取。

http://gistlabs.com/software/mechanize-for-java/ (和GitHub在这里https://github.com/GistLabs/mechanize

看一下HTMLparsing器,比如TagSoup,HTMLCleaner或者NekoHTML。

你可以尝试ui4j或cdp4j库进行网页抓取。 ui4j需要Java 8并使用JavaFx WebKit浏览器,cdp4j需要Chrome。

使用networking抓取工具,您可以从网页中提取有用的内容,并将其转换为适用的任何格式。

现在你的web-scrapping会话开始,准备用webscrap4j库在java中提取或提取数据。

WebScrap ws= new WebScrap(); //set your extracted website url ws.setUrl("http://dasnicdev.github.io/webscrap4j/"); //start scrap session ws.startWebScrap(); 

对于标题:

 System.out.println("-------------------Title-----------------------------"); System.out.println(ws.getSingleHTMLTagData("title")); 

对于标语:

 System.out.println("-------------------Tagline-----------------------------"); System.out.println(ws.getSingleHTMLScriptData("<h2 id='project_tagline'>", "</h2>")); 

对于所有锚点标记:

 System.out.println("-------------------All anchor tag-----------------------------"); al=ws.getImageTagData("a", "href"); for(String adata: al) { System.out.println(adata); } 

对于图像数据:

 System.out.println("-------------------Image data-----------------------------"); System.out.println(ws.getImageTagData("img", "src")); System.out.println(ws.getImageTagData("img", "alt")); 

对于Ul-Li数据:

 System.out.println("-------------------Ul-Li Data-----------------------------"); al=ws.getSingleHTMLScriptData("<ul>", "</ul>","<li>","</li>"); for(String str:al) { System.out.println(str); } 

完整的源代码请查看本教程

还有Jaunt Java Web Scraping&JSON查询 – http://jaunt-api.com