Bootstrap

python三国演义人物 统计分析前20个_python爬取三国演义文本,统计三国演义中出场次数前30的人物,并生成词云、图表...

目录

1.目标

2.码前须知

3.操作流程

4.完整代码

5.总结

1.目标

python爬取三国演义,生成词云、图表

2.码前须知

项目目标:三国人物名称及出现次数-----数据统计分析

提出问题:哪个人物在三国演义中出现的次数最多?,我们希望通过数据分析来获得答案。

分析工具:pandas,Matplotlib

pip install bs4

pip install lxml

pip install pandas

pip install Matplotlib

bs4数据解析必备知识点:标签定位,提取标签中的数据值

1.实例化一个BeautifulSoup对象,并将页面源码数据加载到该对象中,lxml是解析器,固定的参数,下面是举例

#本地html加载到该对象:

fp = open(’./test.html’,‘r’,encoding=‘utf-8’)

soup = BeautifulSoup(fp,‘lxml’)

print(soup)

#互联网上获取的源码数据(常用)

page_text = response.text

soup = BeautifulSoup(page_text,‘lxml’)

2.通过调用BeautifulSoup对象中相关的属性或者方法对标签进行定位和提取

bs4具体属性的用法

1.标签 ,如< p > < a >< div >等等

soup.tagName

例如

soup.a #返回的是html第一次出现的tagName的a标签

soup.div #返回的是html第一次出现的tagName的div标签

2.查找

soup.find(‘div’) 用法相当于soup.div

属性定位, < div class=‘song’ >

soup.find(‘div’,class_=‘song’) class_需要带下划线

class_/id/attr

3.所有符合条件的标签

soup.find_all(‘a’) #返回符合所有的a标签,也可以属性定位

4.select放置选择器 类选择器. .代表的就是tang

soup.select(’.tang’)

soup.select(‘某种选择器(id,class,标签,选择器)’)

返回的是一个列表

定位到标签下面的标签 >表示标签一个层级选择器

soup.select(’.tang > ul >li >a’[0])

空格表示多级选择器

soup.select(‘tang’ > ul a’[0]) 与上述的表达式相同

常用层级选择器

5.获取标签中间的文本数据

soup.a.text/string/get_text()

区别

text/get_text():可以获取某一个标签中所有的文本内容,即使不是直系的文本

string:只可以获取直系文本

6.获取标签中的属性值

soup.a[‘href’] 相当于列表操作

3.操作流程

1.爬取数据来源: 古诗词网《三国演义》

2.编码流程:

指定URL–http://www.shicimingju.com/book/sanguoyanyi.html

发起请求–requests

获取响应数据—

;