爬虫说明文档.docx

上传人:b****3 文档编号:5100438 上传时间:2023-05-08 格式:DOCX 页数:13 大小:1.07MB
下载 相关 举报
爬虫说明文档.docx_第1页
第1页 / 共13页
爬虫说明文档.docx_第2页
第2页 / 共13页
爬虫说明文档.docx_第3页
第3页 / 共13页
爬虫说明文档.docx_第4页
第4页 / 共13页
爬虫说明文档.docx_第5页
第5页 / 共13页
爬虫说明文档.docx_第6页
第6页 / 共13页
爬虫说明文档.docx_第7页
第7页 / 共13页
爬虫说明文档.docx_第8页
第8页 / 共13页
爬虫说明文档.docx_第9页
第9页 / 共13页
爬虫说明文档.docx_第10页
第10页 / 共13页
爬虫说明文档.docx_第11页
第11页 / 共13页
爬虫说明文档.docx_第12页
第12页 / 共13页
爬虫说明文档.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

爬虫说明文档.docx

《爬虫说明文档.docx》由会员分享,可在线阅读,更多相关《爬虫说明文档.docx(13页珍藏版)》请在冰点文库上搜索。

爬虫说明文档.docx

爬虫说明文档

Java网页爬虫步骤

覃璨

一、技术选型

1.HttpClient(或Jsoup)作为爬虫程序处理网络请求的框架。

2.Jsoup作为解析或网页的dom解析器。

3.数据库用MariaDB(MySQL的分支,也是作为替代MySQL的数据库,因为Qracle收购MySQL之后最新版会收费,MariaDB是MySQL带领开发的替代MySQL的开源数据库)

二、开发环境

1.下载安装jdk和jre并设置环境变量。

2.下载安装Eclipse(Eclipsemars)。

3.下载Jsoup的jar包。

4.下载安装MariaDB(安装时端口设置为默认的3306)。

三、前期准备

1.创建工程:

打开Eclipse,新建工程,工程名称随意,新建类,类名称为所抓取网页域名大写,如:

天府创业网

2.配置jar包:

将下载下来的jsoup的jar包放到工程目录下的lib文件夹里(如不存在此文件夹则新建),如图:

右键工程,选择BuildPath->ConfigureBuildPath

点击AddJARs…选择本工程lib文件夹下的jar包,点击ok即可。

3.右键工程,选择最后一项properties,将编码集设置为UTF-8

前期准备完毕。

四、爬虫实例

此处以成都师范学院招生就业处为例(

1.首先新建类,类名为ChengDuShiFan.java,

2.添加提示信息,注明你抓取的网页和作者的名称格式如下:

新建searchAndSaveInfo()方法和main()方法:

在searchAndSaveInfo()方法中书写逻辑代码

3.打开Chrome浏览器(不推荐使用IE),打开成都师范学院招生就业网,红框出为我们需要抓取的数据

点击键盘上的F12,打开元素审查界面,寻找刚好能够包括所需抓取列表的容器:

右键复制CSSPath

3.打开Eclipse,书写如下代码,并按照提示导入所需要的包并向上抛出异常(不要使用try...catch):

此代码代表用Jsoup.connect()方法获取到url为

我们看到刚刚审查元素的过程中所找到的列表容器下每一个li代表一条招聘信息

所以在此基础上继续select(“li”),返回类型为一个Elements元素集合,里面包含了所有的li。

4.到此,我们需要遍历此集合中所有的li,即每一条招聘信息,并抓取相应的信息,此处用到for循环:

注:

并非所有的网页都恰好能找到一个刚好包含所有需抓取信息的容器,所以需要根据实际情况决定变量i的起始值与结束条件。

我们需要抓取每一条招聘信息的标题、链接、日期和内容。

首先创建如下字段:

title->标题类型:

java.lang.String

link->链接类型:

java.lang.String

date->日期类型:

java.sql.Date

content->内容类型:

java.lang.String

school->学校名称(如果不是学校九天网站名称)类型:

java.lang.String

注意类型,不要导错包。

接下来遍历抓取信息

每个字段信息的获取方法与获取招聘列表方法相同,都是通过Chrome浏览器的审查元素功能找到对应的CSSPath。

具体操作方法请XXJsoup的使用方法说明。

五、将数据存入数据库

1.我已将数据库的连接操作进行了封装。

将附件中的项目导入Eclipse后使用以下代码,项目结构如下:

其中com.glaucus.dao包中定义了数据库操作方法的接口

com.glaucus.dao,impl包中实现了com.glaucus.dao中的方法

com.glaucus.util包中定义了一个获取Connection的单例工厂模式

com.glaucus.entity包中定义了Info的JavaBean,包含如下字段和这些字段的getter和setter方法,代表每抓取的一条信息:

dbconfig.properties中存放了数据库连接的配置信息

lib文件夹中存放的jsoup和jdbc的jar包,按照之前的方法BuildPath.

红框处填写你安装数据库时的用户名和密码:

打开mariadb数据库,新建database(databae名称需与红框内字段相对应)

使用如下建表语句创建table

CREATETABLE`info`(

`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,

`title`VARCHAR(500)NOTNULL,

`date`DATENULLDEFAULTNULL,

`content`LONGTEXTNULL,

`link`VARCHAR(500)NULLDEFAULTNULL,

`school`VARCHAR(50)NULLDEFAULTNULL,

`type`INT(11)NOTNULLDEFAULT'1',

PRIMARYKEY(`id`)

COLLATE='utf8_general_ci'

ENGINE=InnoDB

;

2.将爬虫编写的com.glaucus.spider中:

按照以上方法写出爬虫后就要将数据存入数据库中,首先获取connection实例:

实例化一个Info类表示每一条信息,并用setXXX方法将抓取到的内容复制给对应的字段,然后调用infoDao的saveInfo()方法将数据保存,第一个参数为数据库连接实例,第二个参数为info实例。

存入数据库前还需指定该信息的类型为下列哪一类:

比如此条属于网络招聘,则需在调用infoDao.saveInfo()前加上:

最后存入数据库效果如图:

注:

1.如果有多页则需要在外层再嵌套循环。

2.如果日期无法抓取或超过当前日期,先点进链接查看正确日期是否在content中,如没有则将日期设置为当前日期。

3.如果出现连接超时错误请用Jsoup.connect(url).timeout(arg0).get()设置超市,arg0为long类型的毫秒数。

4.若出现乱码或其他情况,请使用HttpClient代替Jsoup.connect()方法,具体步骤请自行XX。

5.请严格遵循示例中的命名和编码格式。

6.不懂或不会的地方请善用搜索引擎。

抓取完毕后使用System.out.println()方法输出抓取到的字段,并在main方法中调用searchAndSaveInfo()方法,如能正确输出,则爬虫编写成功:

请每个班做完后由负责人统一将com.XXX.spider包下的java文件打包发到我的QQ!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2