java文章采集爬虫代码示例

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java文章采集爬虫代码示例相关的知识,希望对你有一定的参考价值。

前言

    由于爬虫性质的特殊性,本文将部分爬取文章的网站例子,用###代替,希望大家能学习java爬取代码技巧!!!

pom文件引入所需要的依赖

        <!--jsoup-->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.13.1</version>
        </dependency>

     jsoup 是一款Java 的html解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

核心实现代码


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import java.io.IOException;

/**
 * 文章采集
 * @author tarzan
 * @date 2021/5/31
 */
public class ArticleCollect {


    //网站地址
    private static String webUrl="###";

    /**
     * @param url 访问路径
     * @return
     */
    public static Document getDocument(String url) {
        try {
            //5000是设置连接超时时间,单位ms
            return Jsoup.connect(url).timeout(5000).get();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) {
        int pageNum=0;
        while (true){
            pageNum++;
            if(!readPage(webUrl,pageNum)){
                break;
            }
        }

    }

    public static String readArticle(String url) {
        Document doc=  getDocument(url);
        //获取文章标题
        Elements title = doc.select("title");
        System.out.println(title);
        //获取文章内容
        Elements content = doc.select("###");
        return content.html();
    }

    public static boolean readPage(String webUrl,int pageNum) {
        Document doc = getDocument(webUrl+"/article/list/"+pageNum);
        // 获取目标HTML代码
        Elements elements = doc.select("###");
        //文章列表
        Elements articles = elements.select("###");
        if (articles.size() == 0) {
            return false;
        }
        articles.forEach(e -> {
            String url = e.select("a").attr("href");
            readArticle(url);
            try {
                //等待3秒
                Thread.sleep(3000);
            } catch (InterruptedException interruptedException) {
                System.out.println("线程中断故障");
            }
        });
        return true;
    }

}

控制台运行输出

以上是关于java文章采集爬虫代码示例的主要内容,如果未能解决你的问题,请参考以下文章

基于java社会化海量数据采集爬虫框架搭建(附代码)

基于java的社会化海量数据采集爬虫框架搭建(附代码)

java图片爬虫脚本_代码下载

Python实战高校数据采集,爬虫训练场项目数据储备

Python实战高校数据采集,爬虫训练场项目数据储备

页面数据采集——网络爬虫实战(ASP.NET Web 博客园为例)