网页抓取,屏幕抓取,数据挖掘技巧?

我正在研究一个项目,我需要做很多屏幕抓取才能尽快获得大量数据。 我想知道是否有人知道任何好的API或资源来帮助我。

顺便说一下,我正在使用java。

这是我的工作流程到目前为止:

  1. 连接到网站(使用Apache的HTTPComponents)
  2. 网站包含一个部分,其中包含一些我需要访问的链接(使用内置的Java HTML解析器来确定我需要访问的所有链接是什么,这是烦人且杂乱的代码)
  3. 访问我找到的所有链接
  4. 对于我访问的每个链接,我需要提取更多数据,分布在多个页面上,因此我可能需要访问更多链接

思考:

  • 有没有人知道任何更高级别/更智能的HTML解析器比内置的java解析器?
  • 基本上它是深度优先搜索。 我想我想在某个时候制作这个multithreading,所以我可以并行访问其中的一些链接。
  • 也许我真正想要的是一个multithreading网络爬行库

如果你还没弄明白,这是我第一次搞乱这个问题,所以我很难说清楚我的需求是什么。 我非常感谢任何以前做过此事的人的任何意见。

我发现JSoup非常适合HTML解析。

有关更多指示,请查看本文: 如何编写multithreadingwebcrawler

我使用Bixo来提取超链接和进行深度搜索的图像。 它构建了hadoop和级联,因此有一个学习曲线,但提供的示例足以配置更改…

尝试使用Web-Harvest项目。

结帐JSR-237 for Work Management,这是一个很酷的想法,当multithreading。

至于刮擦,有几种选择。 如果易用性是最重要的,我建议您使用HTMLUnit。 除此之外,你必须自己动手

Interesting Posts