我找不到任何基于Java的良好网页抓取API。我需要抓取的网站也没有提供任何API;我想遍历所有网页,pageID
并在其DOM树中提取HTML标题/其他内容。
除了网页抓取还有其他方法吗?
Answers:
提取标题并不困难,并且您有许多选择,请在此处的Stack Overflow中搜索“ Java HTML解析器”。其中之一就是Jsoup。
如果知道页面结构,则可以使用DOM导航页面,请参阅 http://jsoup.org/cookbook/extracting-data/dom-navigation
这是一个很好的库,我在上一个项目中使用了它。
Java的机械化将是一个很好的选择,正如Wadjy Essam提到的那样,它将JSoup用于HMLT。mechanize是一个分阶段的HTTP / HTML客户端,它支持导航,表单提交和页面抓取。
http://gistlabs.com/software/mechanize-for-java/(以及GitHub此处https://github.com/GistLabs/mechanize)
也有短途的Java网页抓取和JSON查询- http://jaunt-api.com
您可能会研究jwht-scrapper!
这是一个完整的抓取框架,具有开发人员可以从网络抓取器期望的所有功能:
它可以与(jwht-htmltopojo)[ https://github.com/whimtrip/jwht-htmltopojo)lib一起使用,itsef使用的是Jsoup,在此其他人提到过。
他们在一起将帮助您构建很棒的剪贴器,直接将HTML映射到POJO,并在短短几分钟内绕过任何经典的剪贴问题!
希望这对这里的人有所帮助!
免责声明,我是开发它的人,请随时让我知道您的评论!
对于此类任务,我通常使用Crawller4j + Jsoup。
通过使用crawler4j,我从一个域下载页面,您可以使用正则表达式指定哪个ULR。
使用jsoup,我可以“解析”您通过搜寻器4j搜索并下载的html数据。
通常,您也可以使用jsoup下载数据,但是Crawler4J使其更易于查找链接。使用crawler4j的另一个优点是它是多线程的,您可以配置并发线程数