看动漫的朋友应该知道,最近出了一部神漫《雾山五行》。不到24小时,就登上了B站热搜榜首。豆瓣评分9.5,可见其受欢迎程度。就打斗场面而言,说是最亮眼的动漫也不为过。当然,唯一不足的就是集数。有点短,只有3集。这里有一些动画供您欣赏。看完动画你是不是觉得我说的是最亮眼的动漫不是骗人的。接下来,我们就来爬取一些评论,看看大家对这部动漫的看法。这里我们选择哔哩哔哩、微博和豆瓣。一个抓取数据的平台。爬取B站我们先爬取B站的弹幕数据,动画链接为:https://www.bilibili.com/bangumi/play/ep331423,弹幕链接为:http://comment.bilibili.com/186803402.xml,爬取代码如下:url="http://comment.bilibili.com/218796492.xml"req=requests.get(url)html=req.contenthtml_doc=str(html,"utf-8")#改为utf-8#解析soup=BeautifulSoup(html_doc,"lxml")results=soup.find_all('d')contents=[x.textforxinresults]#保存结果dic={"contents":contents}df=pd.DataFrame(dic)df["contents"].to_csv("bili.csv",encoding="utf-8",index=False)如果你不知道如何抓取B站的弹幕数据大家可以看看:爬取B站的弹幕。然后我们将爬取的弹幕数据生成词云,代码实现如下:defjieba_():#打开评论数据文件content=open("bili.csv","rb").read()#jiebaword_list=jieba.cut(content)words=[]#过滤掉的词stopwords=open("stopwords.txt","r",encoding="utf-8").read().split("\n")[:-1]forwordinword_list:ifwordnotinstopwords:words.append(word)globalword_cloud#用逗号分隔单词word_cloud=','.join(words)defcloud():#打开词云背景imagecloud_mask=np.array(Image.open("bg.png"))#定义词云的一些属性wc=WordCloud(#背景图片分割颜色为白色background_color='white',#背景图案mask=cloud_mask,#显示最大字数max_words=500,#显示中文font_path='./fonts/simhei.ttf',#最大字号max_font_size=60,repeat=True)globalword_cloud#词云函数x=wc.generate(word_cloud)#生成词云图image=x.to_image()#显示词云图image.show()#保存词云图wc.to_file('cloud.png')jieba_()cloud()看效果:抓取微博,然后抓取的微博评论日本动画片理论上,我们选择的爬取目标是巫山五行官博置顶这条微博的评论数据,如图:爬取代码实现如下:urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)#抓取一页评论defget_one_page(url):headers={'User-agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/78.0.3880.4Safari/537.36','Host':'weibo.cn','Accept':'application/json,text/plain,*/*','Accept-Language':'zh-CN,zh;q=0.9','Accept-Encoding':'gzip,deflate,br','Cookie':'owncookie','DNT':'1','Connection':'keep-alive'}#获取网页htmlresponse=requests.get(url,headers=headers,verify=False)#爬取成功ifresponse.status_code==200:#返回值为html文档,传递给解析函数returnresponse.textreturnNone#解析并保存评论信息defsave_one_page(html):comments=re.findall('
