暑假用python爬取了豆瓣上33部关于病毒、疾病题材电影的短评,并尝试了下词频统计、可视化、词云O(∩_∩)O哈哈~
一条条确认电影的豆瓣ID┓(;´_`)┏
知道了电影的豆瓣ID后,就可以构造访问豆瓣短评界面的URL了
base_url = ‘https://movie.douban.com/subject/’ + moveID + ‘/comments’
知道翻页后URL变化的规律后可以构造下一页的URL。而我用的方法是直接在当前界面中用XPATH选择器找到翻页的按钮,获取对应的link内容,构造下一页的URL进行访问。
html_elem = etree.HTML(html)
url = html_elem.xpath(’//div[@id=“paginator”]/a[@class=“next”]/@href’)
同样使用XPATH选择器,这种方法相较于正则表达式容错和效率更高。
contents = html.xpath(’//div[@class="comment-item "]/div[2]/p/span/text()’)
import jieba
import collections
cut_text = jieba.cut(f, cut_all=False)
直接分词之后,有些语气词、称谓词虽然出现次数频繁但没有什么实际意义,需要进行一轮过滤good
当然也可以用字典的方法。
word_counts = collections.Counter(scn_text)
word_counts_top = word_counts.most_common(30)
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
这里使用的是wordcloud库,这个库的安装比较折腾,大家可以找一些资料看看very good!
wordcloud = WordCloud(font_path='C:/Windows/Fonts/HGY4_CNKI.TTF',background_color="white",height=880,width=1000).generate_from_frequencies(word_counts)
import matplotlib.pyplot as plt
plt.clf()
plt.title("")
x = []
y = []
for one in word_counts_top:
x.append(one[0])
y.append(one[1])
plt.bar(x, y)
plt.xlabel(“词汇”)
plt.ylabel(“次数”)
plt.xticks(rotation=80)
https://download.csdn.net/download/qq_23096319/21790452?spm=1001.2014.3001.5501