唐诗分析项目设计文档

本文档详述了一个使用爬虫技术从古诗文网爬取唐诗三百首,进行数据清洗、存储,并利用Echarts进行诗词数量柱状图及词云展示的项目。项目涉及HtmlUnit爬虫框架、ansj_seg分词库,以及Echarts和jQuery的使用,旨在分析唐代诗人作品数量和常用词汇。
摘要由CSDN通过智能技术生成

一. 唐诗项目介绍

1.1项目背景

爬虫技术一直处于风口浪尖,爬了不该爬的会引来一身官司,爬想爬取的数据又不会轻而易举获得,但是又想来玩玩爬虫技术,怎么办呢?首选古诗文网,因为据了解它是没有设置任何反爬虫机制的,数据都是公开合法的,这里我就选择了唐诗三百首来进行爬虫,你们不好奇哪位唐代诗人写的诗最多吗?你们不好奇诗人们最喜欢用什么词去作诗吗?如果你对唐诗也感兴趣,那就跟我一起开启这个奇妙的诗词探险吧。

1.2项目需求

一.用柱状图来展示诗人们的姓名和诗词数量,并按诗词数量降序排序。
二.用词云来展示词的使用频度,使用最频繁的词应该一眼看出。

1.3项目设计

一.通过爬虫机制把唐诗的数据爬取出来,对它进行解析,将每首诗的数据写入到数据库中。
二.通过发起请求来对数据进行分析筛选,最后渲染成可视化效果。
在这里插入图片描述

1.4项目工具选择

这是一个Web项目,Java选择用IDEA这个编译器,选择用maven来引进一些需要用到的第三方库,通过tomcat这个Web应用服务器来执行。

二.唐诗数据爬取模块

2.1技术选型环节

2.1.1爬虫技术

我了解到的爬虫技术栈有 HtmlUnit,HttpClient,这里我选择了HtmlUnit这个框架。

  • 原因:HttpClient是用来模拟HTTP请求的,用的是socket通信,通过get方法来提交请求,只能获取html静态页面的源码,如果页面中有js部分,则不能获取到js执行后的源码。
    HtmlUnit是一款无界面的浏览器程序库,它模拟用户去操作浏览器,允许调用页面,填写表单,点击链接等,还可以执行js,有很多的API用起来也非常方便。

2.1.2分词技术

使用ansj_seg库对古诗的标题和正文进行分词,为词云做准备。这个中文分词器正确率高,不容易出做,分词速度也快,效果也比较高。

2.2项目依赖环节

解析请求html页面

<dependency>
            <groupId>net.sourceforge.htmlunit</groupId>
            <artifactId>htmlunit</artifactId>
            <version>2.36.0</version>
        </dependency>

分词

<dependency>
            <groupId>org.ansj</groupId>
            <artifactId>ansj_seg</artifactId>
            <version>5.1.6</version>
        </dependency>

2.3预研环节

通过编写一些Demo来熟悉这些技术的使用,看看它展示的效果是否满意。

2.3.1解析列表页Demo

WebClient client = new WebClient(BrowserVersion.CHROME);
        client.getOptions().setJavaScriptEnabled(false);
        client.getOptions().setCssEnabled(false);

        String baseurl = "https://so.gushiwen.org";
        String pathurl = "/gushi/tangshi.aspx";
        List<String> detailUrlList = new ArrayList<>();//所有古诗的详情页的url
        //列表页的解析
        {
   
            String url = baseurl + pathurl;
            HtmlPage page = client.getPage(url);//获取诗词页面
            List<HtmlElement> divs &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值