使用java+Jsoup做简单的网络爬虫,爬取网页资源并写入数据库

本文介绍了一个使用Java和Jsoup构建的简单网络爬虫项目,旨在抓取网页资源并存储到数据库中。文章详细描述了项目的目录结构、执行流程,并提供了效果展示。主要内容包括数据库操作、Jsoup解析、HTTP请求以及主程序的执行顺序。
摘要由CSDN通过智能技术生成

使用java+Jsoup做简单的网络爬虫,爬取网页资源并写入数据库


由于工作需要,我近期使用java+Jsoup做了一个简单的网络爬虫程序,都说网络爬虫需要用到Python,但是我们大Java也是可以实现的嘛哈哈 (语言没有高低之分,无引战恶意,Python党请放下你们的西瓜刀哈>_<)

闲言少叙,此次的网络爬虫主要想要做的功能是:将一些“档案类”网站上的资源(文字、图片)抓取下来,写入数据库中:

首先,我们来看一下项目的目录结构:

目录结构:

在这里插入图片描述
这里一共有五个包,db、main、model、parse、util。

  • db:主要放的是数据库操作文件,包含MyDataSource【数据库驱动注册、连接数据库的用户名、密码】,MYSQLControl【连接数据库,插入操作、更新操作、建表操作等】。

  • model:用来封装对象。

  • util:主要放的是httpclient的内容,主要作用时将main方法,传过来的url,通过httpclient相关方法,获取需要解析的html文件或者json文件等。

  • parse:这里面存放的是针对util获取的文件,进行解析,一般采用Jsoup解析;若是针对json数据,可采用正则表达式或者fastjson工具进行解析,建议使用fastjson,因其操作简单,快捷。

  • main:程序起点,也是重点,获取数据,执行数据库语句,存放数据。

程序执行的顺序:

首先,main方法,将url传给util获取响应的html文件,然后util将其获得的html文件,传给parse进行解析,获取最终数据,封装在集合中。解析完毕后,数据返回到main,接着main操作db将数据导入到mysql中。

效果展示:

源网页:http://www.jgsgmbwg.com/bwg.php?cid=6&page=1
在这里插入图片描述
结果展示:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

Jsoup文档

使用Jsoup进行网页元素的抓取,详细操作请参考:https://www.jianshu.com/p/fd5caaaa950d

代码部分:

db-MyDataSource
package com.cesgroup.db;

import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;
/**
 * @author :lu.kaifang
 * @date :Created in 2019/9/9 11:27
 * @description:用以确定此工程的数据库连接信息
 * @modified By:lu.kaifang
 * @version: 1.0
 */
public class MyDataSource {
    public static DataSource getDataSource(String connectURI){
        BasicDataSource ds = new BasicDataSource();
        //MySQL的jdbc驱动
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUsername("root");              //所要连接的数据库名
        ds.setPassword("root");                //MySQL的登陆密码
        ds.setUrl(connectURI);
        return ds;
    }
}
db-MYSQLControl
package com.cesgroup.db;

import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;

import com.cesgroup.model.SpiderModel;
import org.apache.commons.dbutils.QueryRunner;

/**
 * @author :lu.kaifang
 * @date :Created in 2019/9/9 11:29
 * @description:使用QueryRunner方法操作数据库,使用时是batch方法
 * @modified By:lu.kaifang
 * @version: 1.0
 */
public class MYSQLControl {
    //根据自己的数据库地址修改
    static DataSource ds = MyDataSource.getDataSource("jdbc:mysql://127.0.0.1:3306/spider");
    static QueryRunner qr = new QueryRunner(ds);
    //第一类方法
    public static void executeUpdate(String sql){
        try {
            qr.up
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值