Java Web Crawler库

Cod*_*lus 15 java web-crawler

我想为实验制作一个基于Java的网络爬虫.我听说如果这是你第一次使用Java制作一个Web爬虫是可行的方法.但是,我有两个重要问题.

  1. 我的程序如何"访问"或"连接"到网页?请简要说明一下.(我理解从硬件到软件的抽象层的基础知识,这里我对Java抽象感兴趣)

  2. 我应该使用哪些库?我想我需要一个用于连接网页的库,一个用于HTTP/HTTPS协议的库和一个用于HTML解析的库.

cun*_*aya 11

Crawler4j是最适合您的解决方案,

Crawler4j是一个开源Java爬虫,它为爬网提供了一个简单的界面.您可以在5分钟内设置多线程Web爬虫!

访问.更多基于Java的网络爬虫工具和每个工具的简要说明.


Moh*_*dil 8

这是您的程序如何"访问"或"连接"到网页.

    URL url;
    InputStream is = null;
    DataInputStream dis;
    String line;

    try {
        url = new URL("http://stackoverflow.com/");
        is = url.openStream();  // throws an IOException
        dis = new DataInputStream(new BufferedInputStream(is));

        while ((line = dis.readLine()) != null) {
            System.out.println(line);
        }
    } catch (MalformedURLException mue) {
         mue.printStackTrace();
    } catch (IOException ioe) {
         ioe.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException ioe) {
            // nothing to see here
        }
    }
Run Code Online (Sandbox Code Playgroud)

这将下载html页面的源代码.

对于HTML解析,请参阅此内容

另外看看jSpiderjsoup


Vis*_*hnu 6

现在包含了许多支持访问和解析 HTML 页面的基于 Java 的 HTML 解析器。

这是带有基本比较的 HTML 解析器的完整列表。


rus*_*tyx 5

如果您想了解如何完成,请查看这些现有项目:

典型的爬虫过程是一个由获取、解析、链接提取和输出处理(存储、索引)组成的循环。尽管问题在于细节,即如何“礼貌”和尊重robots.txt、元标记、重定向、速率限制、URL 规范化、无限深度、重试、重新访问等。

Norconex HTTP 收集器流程图

流程图由Norconex HTTP Collector提供。