python爬虫-八佰词云
时间:2022-07-25
本文章向大家介绍python爬虫-八佰词云,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
python爬虫-八佰词云
概述
豆瓣八佰短评爬虫
思路
使用正则解析网页,获得数据 使用wordcloud绘制词云
代码
# 数据获取
import requests
import re
import csv
import jieba
import wordcloud
# 通过循环实现多页爬虫
# 观察页面链接规律
# https://movie.douban.com/subject/26754233/comments?start=0&limit=20&sort=new_score&status=P
# https://movie.douban.com/subject/26754233/comments?start=20&limit=20&sort=new_score&status=P
# https://movie.douban.com/subject/26754233/comments?start=40&limit=20&sort=new_score&status=P
# https://movie.douban.com/subject/26754233/comments?start=60&limit=20&sort=new_score&status=P
# 每页20条从0到后,因此设置循环步骤,爬取1000页
# 备注,高看了,没有1000页数,修改
page=[]
for i in range(0,80,20):
page.append(i)
with open (r'D:360MoveDataUserscmusunqiDocumentsGitHubR_and_pythonpython豆瓣八佰爬虫短评.csv','a',newline='',encoding='utf-8') as f:
for i in page:
url='https://movie.douban.com/subject/26754233/comments?start='+str(i)+'&limit=20&sort=new_score&status=P'
headers={
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0'
}
resp=requests.get(url,headers=headers)
html=resp.text
# 解析网页
res=re.compile('<span class="short">(.*?)</span>')
duanpin=re.findall(res,html)
# 保存数据
for duan in duanpin:
writer=csv.writer(f)
duanpin=[]
duanpin.append(duan)
writer.writerow(duanpin)
# 绘制短评词云图
f = open (r'D:360MoveDataUserscmusunqiDocumentsGitHubR_and_pythonpython豆瓣八佰爬虫短评.csv',encoding='utf-8')
txt=f.read()
txt_list=jieba.lcut(txt)
string=' '.join(txt_list)
w=wordcloud.WordCloud(
width=1000,
height=700,
background_color='white',
font_path="msyh.ttc",
scale=15,
stopwords={" "},
contour_width=5,
contour_color='red'
)
w.generate(string)
w.to_file(r'D:360MoveDataUserscmusunqiDocumentsGitHubR_and_pythonpython豆瓣八佰爬虫\八佰.png')
结果
此次爬取的短评数据较少,在网页的源代码里面只有这么几条,让我百思不得其解,感觉是有问题的,可能需要将网页代码转换为手机数据进行浏览,也许可能是本来就那么几条,谁知道呢 从词云看,八佰还是打着历史的旗号进行宣发,因此这样的历史虚无主义电影,还是别看了,管虎的屁股就没正过。
结束语
最近爬虫、和业余的python学的有点多了,后面还是转到数据分析吧。
love&peace
- 出租车、巴士、单车、AI全入局 首汽约车着力搭建出行生态圈
- 如何运行ruby代码
- 图解NodeJS【基于事件、回调的单线程高性能服务器】原理
- CListBox
- 如何在Eclipse中添加Tomcat的jar包
- c++---函数
- Ruby对象模型总结
- Elasticsearch 管理文档
- Elasticsearch聚合 之 Ip Range IP地址范围聚合
- Elasticsearch聚合 之 DateRange日期范围聚合
- 域名投资大佬Mike Mann以约19.5万美金出售加密货币相关域名
- Elasticsearch聚合 之 Range区间聚合
- Elasticsearch集群管理
- 图m着色问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SAP Spartacus OccEndpointsService单元测试的依赖注入
- Python利用PyPDF2库获取PDF文件总页码实例
- TypeScript里get属性的实现
- SAP Spartacus OccEndpointsService单元测试之getBaseEndpoint
- html+css入门基础案例之圣诞那些事
- 建议收藏备查!MySQL 常见错误代码说明
- html+css入门基础案例之页面设计
- Github 星标 8K+ 这款国人开源的 Redis 可视化管理工具,真香...
- CSS3 2D转换
- CSS3 3D转换
- python传到前端的数据,双引号被转义的问题
- H5C3综合案例
- 移动web开发之rem适配布局
- Android面试题问答整理
- 移动开发之响应布局