admin管理员组

文章数量:1574582

这个程序是我的毕业设计所设计的一个程序,由于时间原因,可能有些地方或者细节没有考虑清楚,请各位多多包涵
最后的源代码工程我已经上传,有需要的可以自取,希望可以帮助到大家

程序简介

此程序使用Java语言进行开发,具体的功能有以下几点:
1、利用网络爬虫技术获取指定网页(纵横中文网)上的指定数据(小说),然后将爬取到的小说以小说名称、章节的形式保存在本地的硬盘中,并且利用数据库对小说的储存位置进行存放。
2、利用百度人工智能中的内容审核平台里的文本审核功能对爬取的小说进行审核,输入小说名称后,系统自动在数据库里面通过名字查找小说的每一章节在本机硬盘的储存位置。然后根据储存位置查找小说的内容并进行文本内容审核。审核完毕之后返回审核结果。
3、对返回的审核结果进行分析,在可视化的界面上输出相应的审核结果(合规,不合规),并且对于不合规的情况,输出具体的不合规理由(文本色情,暴恐违禁,政治敏感,低俗辱骂,低质灌水等等),然后对于违禁词语单独输出,让用户可以对文本进行有针对性的修改操作。

开发过程

程序的结构如下图所示:

网页数据信息的获取

首先,获取指定网页的源代码,然后对源代码进行过滤选择操作,得出所需要的数据信息,步骤如下:
1、运用Jsoup的connect方法来获取网页的源代码
2、运用Jsoup的select方法对获取到的源代码进行解析,解析出每一章节的具体地址(url地址)
3、设置循环,进入每一章节的网页界面,在获取了网页也源代码后过滤选择获得相应的数据(章节的小说内容)
4、将获取到的数据储存到本机的硬盘中
5、在数据库里创建一个新的数据表,名字为小说的名称,并且将每一章节的名称,在本机硬盘的地址写入数据表中。
在程序开发时需要注意的事项:
1、在获取网页的代码时需要注意反爬虫程序
由于很多网站都有反爬虫程序,因此必须对请求加上一些操作,例如说加上浏览器的具体类型,设置超时时间等等。这是为了让请求变得更像手工操作的请求而非爬虫程序,从而避免反爬虫程序的检测。
连接网页代码如下:

Document doc = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36") 		            
.timeout(999999999) 		            
.get();

2、在过滤网络源代码时需要注意目标数据的位置
程序首先需要找出小说每一章的url地址,然后再访问每一个章节的地址来获得需要的小说内容,因此这两个操作中的目标数据是不一样的。所以在过滤网络代码时需要设置不同的过滤条件从而得到需要的目标数据。
1、对于找出小说每一章的url地址,选择代码如下:

Elements ele = doc.select(".volume-list");
Elements tag = ele.select("a");
taghref = tag.get(i).attr("href");

2、对于找出小说的名称,选择代码如下:

Elements filename1 = doc.select(".container");
Elements filename2 = filename1.select("h1");
String filename3 = filename2.text();//这个为这一本书的名称(也为创建的小文件夹的名称)

3、对于找出每一章节的名称,选择代码如下:

Elements titlehtml = docs.select("title");
String title = titlehtml.text();

4、对于找出每一章节的内容,选择代码如下:

Elements eles = docs.select(".content");
Elements tags = eles.select("p");
String text = tags.text();

将目标数据写入本地硬盘

在获取到了所需要的目标数据之后,就要在本机中创建一个文件夹并且把数据保存进里面,以便在后续的文本敏感性检测环节中检测。
在这个环节中,主要步骤如下:
1、根据小说名称检测本地硬盘中是否存在对应的文件夹,若不存在则创建一个新的文件夹
实现代码如下:

File file1=new File("C:\\Users\\可乐我只喝无糖\\Desktop\\books\\"+filename3);
   if(!file1.exists())
   {
   
    file1.mkdir();//创建文件夹
	}

2、在文件夹中创建以章节名称为名字的txt文件,并把爬取到的章节内容存进txt文件中
需要注意的是:在Java语言中file文件的分割形式为“\”,然而如果将文件的保存位置以这种形式储存进数据库时,MySQL数据库会自动忽略“\”字符从而导致后面的读取操作失败,因此需要将“\”转化成“\”然后再保存进数据库中。
实现代码如下:

String title = titlehtml.text();//这是每一章节的标题
File file = new File(file1+"\\"+title+".txt");
String address = file.toString();
address = address.replace

本文标签: 爬虫中文网为例程序内容