JAVA利用jsoup爬取html静态网页中的指定数据

利用jsoup爬取html静态网页中的指定数据

描述

爬取指定静态页面的某个模块下的数据
这里爬取的网页链接是:
http://www.hljkjt.gov.cn/html/zwgk/tztg/list.html
下的通知通告内容,及每个通知通告对应的链接。
在这里插入图片描述
爬取的数据初步写入本地文件,效果如下:
在这里插入图片描述
创建maven项目,pom.xml文件:

	<dependencies>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.9.2</version>
        </dependency>
    </dependencies>

代码如下:

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

import java.io.FileWriter;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        String url = "http://www.hljkjt.gov.cn/html/zwgk/tztg/list.html";
        String filePath = "C:\\Users\\Administrator\\Desktop\\crawler.txt";
        String ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36";
        Test t = new Test();
        t.getRes(url,filePath,ua);
    }

    public void getRes(String url,String filePath,String ua) throws IOException{
        //解析html
        Document doc = Jsoup.connect(url).timeout(5000).userAgent(ua).get();
        Elements listDiv = doc.getElementsByAttributeValue("class", "List_title");
        String h4 = "";
        String title = "";
        String href = "";
        String res = "";
        for (int i =0;i<listDiv.size();i++) {
            Elements listDivs = doc.getElementsByAttributeValue("class", "listn_box");
            h4 = listDivs.get(i).getElementsByTag("h4")+"\n";

            Elements a = listDiv.get(i).getElementsByTag("a");
            for(int j =0;j<a.size();j++){
                title = a.get(j).attr("title");
                href = a.get(j).attr("href");
                if(j == 0) {
                    res = h4 + "title:" + title + "\thref:http://www.hljkjt.gov.cn" + href + "\n";
                }else {
                    res = "title:" + title + "\thref:http://www.hljkjt.gov.cn" + href + "\n";
                }
                System.out.print(res);
                Test.saveAsFileWriter(res,filePath);
            }
        }

    }
    private static void saveAsFileWriter(String content,String filePath) {
        FileWriter fwriter = null;
        try {
            // true表示不覆盖原来的内容,而是加到文件的后面。若要覆盖原来的内容,直接省略这个参数就好
            fwriter = new FileWriter(filePath, true);
            fwriter.write(content);
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            try {
                fwriter.flush();
                fwriter.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}

后面再将爬取的数据写入到mysql

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@nanami

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值