15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > Python爬虫之爬取情话网站并绘制词云

Python爬虫之爬取情话网站并绘制词云

时间:2023-07-02 17:45:01 | 来源:网站运营

时间:2023-07-02 17:45:01 来源:网站运营

Python爬虫之爬取情话网站并绘制词云:

一、爬取网站

1.分析目标网站

首先我们需要分析目标网站的源代码

分析html得知所有的情话都是在标签<div class=”content”>下,而且一个<p>标签对应着一句情话。

2.编写代码

import bs4import requests#摘要:根据传入的url,爬取网站,如果有错误,则返回空字符#传入:爬取的网址 string#返回:爬取的html stringdef getHtml(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: print('爬取失败') return ''#摘要:分析html,找到需要的字符串#传入:爬取的网站html string#返回:情话列表 listdef getQinghuaList(html): qList=[] soup=bs4.BeautifulSoup(html,"html.parser") for p in soup.find_all("p"): s=p.string s=str(s) s=s.split('、',1) finals=s[-1] qList.append(finals) return qListurl='http://www.1juzi.com/new/45856.html'html=getHtml(url)q=getQinghuaList(html)q以下是爬取的部分情话

['不是你爱我,我就要爱你,爱情不是交换,我也不想交换。', '我想触动你的心,就像你触动了我的心那样。', '只为和你感触那爱的射线,在你我眼中那一霎那的交融!', '有幸陪你从一而终,便是我此生最大的幸运。', '天涯供你选,我只负责陪你,东奔西走挡寒风。', '我的所有心事,所有想法,过去,现在,将来,只归结为一个声音,一个语调,如果它响起来,只能是:我爱你!', '在你抑郁的时候,我就是你的开心果。在你忧伤的时候,我愿作你的忘忧树!', '你清风白露守我百岁无忧,我凤冠霞帔许你此生不渝。', '你就是我最困难时的那位永远支持我的人。', '一生算不算太久,有没有尽头,够不够带我走。',………………………………………………………………'我没有勇气折断我的翅膀,却也飞不到任何地方。', '依依脉脉两如何,细似柔丝渺似波。月不常圆花易落,一生惆怅为伊多。', '我的眼睛必定有问题,由于我的视线始终无奈从你的身旁移开。', '如果有一天,我无法继续呼吸,那只是说明,我的世界缺少了空气,或者,缺少了你。', '总是想念着你,虽然我们无法共同拥有每分每秒。', '在生活的激流里,我的船会永远追随你,伴你一程又一程,平安驶向目的地,到达目标后我会告诉你:一生不想离开你。', '当我转身时,你已不在了路口,是我回应的太慢,还是你走的太快。', '曾经有一份真挚得爱情摆在我面前,我没有去珍惜。', '我学会了深夜把手机关机。然后塞到枕头下面,沉沉睡去。', '爱之火,在我俩的心中燃起,从此我俩将被熔在一块。', '你可不可以看着我的眼,就当是我的奢望。']

二、将爬取的情话绘制词云

1.什么是词云

“词云”就是通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出。

词云图过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

利用python第三方库wordcloud可以绘制词云图

3.编写代码

#摘要:利用jieba中文分词库将情话分割成一个个词汇#传入:list情话列表#返回:srting情话字符串文本def splitList(l): fList=str() for s in l: sList=jieba.cut(s,cut_all=False) for i in sList: if i in [',','。','?','!','*','‘','’','“','”','、',';']: continue fList+=i fList+=' ' return fList#词云背景颜色函数def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None): h = random.randint(90,360) s = int(100.0 * 255.0 / 255.0) l = int(100.0 * float(random.randint(60, 120)) / 255.0) return "hsl({}, {}%, {}%)".format(h, s, l)word=splitList(q)back_color = np.array(imageio.imread('./1923.png_860.png'))#传入爱心图片,背景需设为透明#设置词云wc = wordcloud.WordCloud( background_color='white',#背景色为白色 mask=back_color,#用上面传入的图片绘制词云 random_state=10,#设置有多少生成状态,即多少种词的颜色 color_func=random_color_func,#上面的颜色控制函数 font_path="C://Windows//Fonts//simkai.ttf"#中文字体的路径 )wc.generate(word)#生成词云wc.to_file('1900pro2.png')#导出词云图片plt.imshow(wc)#展示图片plt.axis('off')#取消坐标轴plt.show()

三、后记

技术是为人类服务的,因此数据可视化非常重要,词云就是一个非常好的展示高频关键词的工具,也希望我能多读一些文学书籍,这样就不需要爬情话来show了。

参考链接



关键词:绘制,爬虫,情话

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭