Python培训
美国上市Python培训机构

400-111-8989

热门课程

如何用python爬取QQ说说并生成词云图?

  • 发布:程序猿tx
  • 来源:掘金
  • 时间:2018-05-15 10:41

记得我第一次在朋友圈里边看到词云图的时候就显得特别欣喜,追着问这是怎么做出来的,这不今天python培训班以python爬取QQ说说并生成词云图为例,让你知道这张词云图的来龙去脉。

python培训班分享如何用python爬取QQ说说并生成词云图

想当年,哥哥我还是那么风华正茂、幽默风趣...

言归正传,本次使用的是:

selenium模拟登录+BeautifulSoup4爬取数据+wordcloud生成词云图

python培训班分享如何用python爬取QQ说说并生成词云图第一步:BeautifulSoup安装

pip install beautifulsoup4

下表列出了主要的解析器,以及它们的优缺点:

主要的解析器,以及它们的优缺点

python培训班分享如何用python爬取QQ说说并生成词云图第二步:selenium模拟登录

使用selenium模拟登录QQ空间,安装pip install selenium

我用的是chrom浏览器,webdriver.Chrome(),获取Chrome浏览器的驱动。

这里还需要下载安装对应浏览器的驱动,否则在运行脚本时,会提示:

chromedriver executable needs to be in PATH错误,用的是mac,网上找的一篇下载驱动的文章,https://blog.csdn.net/zxy987872674/article/details/53082896

同理window的也一样,下载对应的驱动,解压后,将下载的**.exe 放到Python的安装目录,例如 D:\python 。 同时需要将Python的安装目录添加到系统环境变量里。

qq登录页http://i.qq.com,利用webdriver打开qq空间的登录页面:

driver = webdriver.Chrome()

driver.get("http://i.qq.com")

利用webdriver打开qq空间的登录页面

打开之后右击检查查看页面元素,发现帐号密码登录在login_frame里,先定位到所在的frame,driver.switch_to.frame("login_frame") ,再自动点击帐号密码登录按钮,自动输入帐号密码登录,并且打开说说页面,详细代码如下:

打开说说页面的详细代码

这个时候可以看到已经打开了qq说说的页面了,注意 部分空间打开之后会出现一个提示框,需要先模拟点击事件关闭这个提示框。

部分空间打开之后出现的提示框

模拟关闭提示框

同时因为说说内容是动态加载的,需要自动下拉滚动条,加载出全部的内容,再模拟点击下一页加载内容。

python培训班分享如何用python爬取QQ说说并生成词云图第三步:BeautifulSoup爬取说说

F12查看内容,可以找到说说在feed_wrap这个<div>,<ol>里面的<li>标签数组里面,具体每条说说内容在<div> class="bd"的<pre>标签中。

F12查看内容

模拟点击下一页加载内容

至此QQ说说已经爬取下来,并且保存在了qq_word文件里。

python培训班分享如何用python爬取QQ说说并生成词云图第四步:词云图

使用wordcloud包生成词云图,pip install wordcloud

这里还可以使用jieba分词,我并没有使用,因为我觉得qq说说的句子读起来才有点感觉,个人喜好,用jieba分词可以看到说说高频次的一些词语。

设置下wordcloud的一些属性,注意 这里要设置font_path属性,否则汉字会出现乱码。

这里还有个要提醒的是,如果使用了虚拟环境的,不要在虚拟环境下运行以下脚本,否则可能会报错:

虚拟环境下运行以下脚本可能会报错

我就遇到了这种情况,deactivate 退出了虚拟环境再跑的:

生成词云图

至此,爬取qq说说内容,并生成词云图。

恭喜你阅读完了本文,打开本文的第一张图便是我们python爬取QQ说说并生成的词云图,如你所见,惊不惊喜?意不意外?对了,您更可以拓展到微信朋友留言、淘宝评论、电影影评等,还不赶紧去试试!如果你还有更多python相关的问题,欢迎你来达内python培训机构进行咨询。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

上一篇:python培训班解读|AI人工智能的发展是否会毁灭人类?
下一篇:python编程也能八卦?

邀你来讨论:为什么大四生自学python两个月找不到工作?

python怎么学才能拿高薪?

java、python和大数据,我该选择哪个?

有人说使用python会降低程序员的编程能力,这是真的吗?

选择城市和中心
贵州省

广西省

海南省