查看原文
其他

【爬虫篇】解锁《梦华录》之东京繁华生活

爬虫俱乐部 Stata and Python数据分析 2023-01-01

本文作者:赵一帆,中南财经政法大学金融学院

本文编辑:万   浩

技术总编:王玉婷


Stata&Python云端课程来啦!

      好消息好消息,爬虫俱乐部开辟小鹅通战场!!爬虫俱乐部隆重推出小鹅通网络课程,将Stata基础课程Stata进阶课程Python课程都上传至小鹅通平台,欢迎大家多多支持订阅!报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台留言哦。如需了解详情,可以通过课程链(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~


引言

最近大家应该都被刘亦菲和陈晓主演的《梦华录》刷屏了吧,播放量开播十天就超过15亿了,豆瓣评分高达8.6,谁还没有被神仙姐姐的颜值所吸引呢?小编开始追剧后,惊喜地发现不仅演员演技在线而且布景精致美好,很好地还原出北宋朝代东京的繁盛情景。下面我们便使用豆瓣评论词云图的方式来打开《梦华录》吧!

One
下载豆瓣评论的数据
首先,我们需要使用requests库爬取《梦华录》该电视剧的豆瓣评论内容和评价时间,网址为:
https://movie.douban.com/subject/35231822/comments?limit=20&status=P&sort=new_score
我们通过前后翻页可以观察到只有网址中start参数发生了变化,limit表示每页获取到评论的数量,所以我们在爬虫翻页的时候只需要设置start参数就可以了。



接下来,我们查看所需要的信息是否在页面源代码中显示,点击鼠标右键查看网页源代码(或者Ctrl+U),采用查找(Ctrl+F)的方式就能看到本页面的评论内容详情了~



具体爬虫代码如下:
import requestsimport timeimport reimport pandas as pdimport matplotlib.pyplot as plt
def get_url(i): url = f'https://movie.douban.com/subject/35231822/comments?start={i * 20}&limit=20&status=P&sort=new_score' return url
def get_info(url): headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.39"} response = requests.get(url, headers=headers) html = response.text comments_list = [i for i in re.findall('<span class="short">(.*?)</span>', html , re.S)] comments_time_list = [i.strip() for i in re.findall('<span class="comment-time " title="(.*?)">',html, re.S)]
df = pd.DataFrame({"评论时间": comments_time_list, "评论内容": comments_list}) return df
if __name__ == "__main__": df = pd.DataFrame(columns=['评论时间','评论内容'],dtype=object) for i in range(1,40): url = get_url(i) print(f"正在打印第{i}页") df1 = get_info(url) df = pd.concat([df,df1]) time.sleep(50)    df.to_csv('梦华录.csv',encoding='utf_8_sig')
Two
绘制词云图
那么大家对这部剧的评价如何呢?我们需要先导入第一步获取到的豆瓣评论数据,然后导入jieba第三方库,通过对观众的评论内容分词,进行词频统计。在绘制词云图的过程中,我们需要先导入背景图片,设置词云图的参数,最终直观展示出《梦华录》豆瓣评价的词云图,
具体代码如下:
#导入第三方库import jiebafrom wordcloud import WordCloudfrom imageio import imread#导入爬取的数据df = pd.read_csv("梦华录.csv",index_col=0)# 分词操作jieba.add_word("梦华录")df["切分后评论"] = df["评论内容"].apply(jieba.lcut)# 去除停用词with open("stopword.txt","r",encoding="gbk") as f: stop = f.read() # 返回的是一个字符串stop = stop.split() # 这里得到的是一个列表stop = stop + [" ","\n","\t"]df_after = df["切分后评论"].apply(lambda x: [i for i in x if i not in stop])#print(df_after)# 词频统计all_words = []for i in df_after: all_words.extend(i)word_count = pd.Series(all_words).value_counts()print(word_count)
#绘制词云图# 读取背景图片back_picture = imread("shfb.png")# 设置词云参数wc = WordCloud(font_path="F:\Python\Winter\dist\图表\SimHei.ttf", background_color="black", max_words=2000, mask=back_picture, max_font_size=200, random_state=42 )wc2 = wc.fit_words(word_count)# 绘制词云图plt.figure(figsize=(20,10))plt.imshow(wc2)plt.axis("off")plt.show()wc.to_file("ciyun.png")


我们可以发现大家的评价中,刘亦菲、赵盼儿和陈晓是比较醒目的,可见大家对两位主演的喜爱程度,其次台词、编剧、女性和剧情是提及次数较多的。《梦华录》这部剧的看点,除了刘亦菲“天仙姐姐”的颜值、陈晓的帅气和考究的宋代文化,也因剧里的女性力量,网友戏称这部剧为三姐妹之“宋朝北漂记”。
最后也欢迎大家来到八朝古都开封游玩,慢下来去感受《梦华录》中的东京繁华生活,聊一聊宋朝的点茶风俗,品一品汴绣的雅致,尝一尝夜市的美味~



END

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。





对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!





往期推文推荐      爬虫俱乐部的精彩答疑——DOS命令       爬虫俱乐部的精彩答疑之换行问题

爬虫俱乐部的精彩答疑--路径设置乱码怎么破?

爬虫俱乐部的精彩答疑--putdocx的二三事

爬虫俱乐部精彩答疑之Python篇

爬虫俱乐部的精彩答疑--花式重命名变量

      今天你还是“刘畊宏女孩”吗?

爬虫俱乐部在山东财经大学金融学院暑期Stata网课上的精彩答疑

JupyterNotebook——如何更换默认文档目录

Stata绘图系列——玩转绘图通用选项(一)

出人意料!这所大学的A级学科总数竟超越清华北大!

Stata数据读入——打开方式不同?

数据类型——Dict、Set与Frozenset简析

Stata小贴士之外部命令安装路径

有一种夏天叫做宫崎骏的夏天

换装术|多个Excel文件如何一键转为dta格式

【基础篇】Python可变对象与不可变对象

Stata绘图系列——细节掌控绘图区域!

 4月A股的收官战之概念板块哪家强?

解放双手!你必须要会的两个命令—inlist & inlist2

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存