基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
来源:互联网 发布:js中unshift 编辑:程序博客网 时间:2024/05/16 06:36
本文为原创博客,仅供技术学习使用。未经允许,禁止将其复制下来上传到百度文库等平台。
目录
- 网络爬虫框架
- 网络爬虫的逻辑顺序
- 网络爬虫实例教学
- model
- main
- util
- parse
- db
- 再看main方法
- 爬虫效果展示
网络爬虫框架
写网络爬虫,一个要有一个逻辑顺序。本文主要讲解我自己经常使用的一个顺序,并且本人经常使用这个框架来写一些简单的爬虫,复杂的爬虫,也是在这个基础上添加其他程序。
首先,我的工程都是使用maven建的,不会使用maven的,请看之前写的网络爬虫基础。使用spring MVC框架编写过网站的同学,可以看出框架的重要性与逻辑性。在我的网络爬虫框架中,包含的package有db、main、model、parse、util五个文件。
db:主要放的是数据库操作文件,包含MyDataSource【数据库驱动注册、连接数据库的用户名、密码】,MYSQLControl【连接数据库,插入操作、更新操作、建表操作等】。
model:用来封装对象,比如我要获取京东书籍的ID、书名、价格,则需要在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中。
网络爬虫实例教学
通过上面的框架,我们可以看出写一个网络爬虫,其实很简单(当然有很复杂的网络爬虫哦)。下面,我将带大家写一个基于Java爬虫京东图书信息的网络爬虫,只是做讲解使用,供大家学习和参考。
首先,起点是什么?你可能觉得是main方法,其实不然,起点是你要知道你要获取网站中的哪些数据,然后针对要抓取的数据去写model。如下图,我要获取京东上的图书的价格,和图书名,还有图书的id(id是唯一标识,可作为数据表的主键)
model
用来封装对象,我要抓取一本书的数据包括,书籍的id,书名及价格。ecliplse中生成set、get方法的快捷键是shift+alt+s然后选择生成setter、getter
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
main
主方法,尽量要求简单,这里我就这样写了。这里面有注释,很好理解。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
util
util中包含两个文件,URLFecter 与HTTPUtils,其中URLFecter 调用了HTTPUtils类。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
上面程序调用的HTTPUtils这个类,以下是HTTPUtils这个类。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
parse
parse主要是通过Jsoup来解析html文件。并将解析后的数据,封装在List集合中,将数据通过层层返回到main方法中。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
db
db中包含两个java文件,MyDataSource,MYSQLControl。这两个文件的作用已在前面说明了。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
下面是MYSQLControl,主要使用QueryRunner方法操作数据库,使用时是batch方法。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
再看main方法
在main方法中有这样一句程序,这便是调用了操作数据库MYSQLControl程序,将抓取的数据插入到数据库中了
- 1
- 1
爬虫效果展示
到此,便完成了这个简单网络爬虫的编程工作,下面来看看程序运行的结果吧。
数据库中的结果如下:
有什么不明白的,请发邮件至1563178220@qq.com 合肥工业大学管理学院 qianyang
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- 转载:基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- Python爬虫 爬取Google Play 100万个App的数据,并入库到数据库 scrapy框架
- Python3.6实现scrapy框架爬取数据并将数据插入MySQL与存入文档中
- 基于Scrapy框架下的Python网络爬虫的实现
- 【JAVA】基于HttpClient4.0的网络爬虫基本框架(Java实现)
- 基于JSoup的网络爬虫爬取小说内容
- 基于HttpClient4.0的网络爬虫基本框架(Java实现)
- 基于HttpClient4.0的网络爬虫基本框架(Java实现)
- 网络连接取数据,并加载到ListView的实现
- python爬虫实现网络股票信息爬取的demo
- java实现简单的网络爬虫(爬取电影天堂电影信息)
- Java实现网络爬虫爬取网页链接并设置搜索深度(广搜)
- 【正完成】Java基于Jsoup的网络爬虫工具实现
- 基于Java的网络爬虫实现抓取网络小说(一)
- java 使用webmagic 爬虫框架爬取博客园数据存入数据库
- Java JDK配置说明
- jquery ajax 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- 自己的第一个C++小程序
- Adreno Profiler 分析任意安卓游戏特效、抓取资源
- java查找字符串中指定字符
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
- Android中CPU频率查看和修改
- 根据条件刷新datagrid表格
- Linux常用命令之英文全称
- linux系统安装redis
- 设置UIButton的文字显示位置、大小、颜色
- 去除所有的 html标签
- Spark on Yarn集群搭建
- lucene一个field多个条件查询