利用爬虫做词云分析

作者: 氢立方 | 来源:发表于2018-07-22 10:37 被阅读78次

首先跟大家解释下,为什么更新的是关于爬虫的内容而不是open.cv。因为小编想继承上一篇帖子(python数据可视化之WordCloud)的内容,上篇帖子只是简单的介绍了wordcloud的安装和使用方法,但是应用部分却没有怎么提及。今天,我们用爬虫来获取网页,然后再用word cloud做词云分析。

一、爬虫框架的搭建
1.1网络爬虫的基本思路
爬虫的目的是获取网页的信息,一般的应用就是搜索引擎了。今天小编就以爬取搜狐新闻为例跟大家聊聊爬虫的这些事儿。我们一般是通过requests库向web提出请求,然后通过BeautifulSoup库对页面内容进行解析,再次是利用正则表达式对获取的页面内容进行详解和筛选关键信息。具体的流程如下图:

爬虫1.PNG
安装requests库的方法:只需在命令行输入:“pip install requests”即可,这次我们用到的库一共是5个:requests、BeautifulSoup、jieba、re(re是python的内置模块,无需安装)、WordCloud。前三种库的安装方法同requests是一样的,所以小编就不赘述,WordCloud的安装参考这篇帖子
requests库的使用方法很简单,也很容易掌握,主要的方法如下: 爬虫2.PNG

接下来,小编介绍下jieba库的使用:jieba是优秀的中文分词第三方库,中文文本需要通过分词来获得单个词语,它提供三种分词模式,主要是依靠中文词库,除了分词,用户还可以自定义添加词组。总的来说,jieba的分词要点就是:jieba.lcut(txt)。
二、实例
2.1 构造请求,获取页面内容进行解析
第一步我们需要构造请求,获取页面内容,具体的代码如下:

import requests
from bs4 import BeautifulSoup
url = "https://www.sohu.com/a/226127592_139908"
responce = requests.get(url)
soup = BeautifulSoup(responce.text,'lxml')    #lxml用来解析网页
responce.status_code    #如果返回值为200则表示访问成功

2.2抓取页面,获取关键信息
我们需要进入开发者模式(一般是按F12或者是单击鼠标右键选择“检查//审查元素”选项卡),找到我们的想要的对象,这时对应的HTML源码部分就会变蓝,具体的操作如下图:

示例1.gif

我们的目标是获取2017年度政府报告的全文,注意到这部分文本在 article类的article标签下,可以利用BeautifulSoup模块下的find函数进行查找,即

links_div = soup.find("article",class_="article")
#links_div     我们可以尝试输出下获取的文本,验证是否是我们想要的
text = links_div.strip()   #对字符串进行切片操作

2.3 接下来,我们把得到的页面内容作为对象保存到字典中,然后再写入到本地的记事本中

dic = {text}
with open("C:\\Users\qinglifang\\Desktop\\pictures\\report.txt",'a',encoding='utf-8')as f:
    f.write(str(dic))
f.close()

2.4 然而,我们注意到获取的页面内容中有html的标签和其他符号存在,不利于下一步的词云操作,所以需要利用jieba和正则表达式对得到的文本进行清洗。

import jieba
import re
r ='[,。\%、;1234567890n]'
file=open("report.txt","r",encoding='utf-8').read()
file =re.sub(r,'',file)      #剔除无关信息
con = jieba.lcut(file)     #分词
words = " ".join(con)    #分词后插入空格

2.5词云分析

from wordcloud import WordCloud
wordcloud = WordCloud(font_path="simkai.ttf",background_color="white",width=800, height=660).generate(words) 
#我们注意到wordcloud对中文很不友好,必须要进行jieba分词,还应该再WordCloud中增加设置字体的参数
#否则生成的词云图片是方框型的
wordcloud.to_file('pic.png')     #保存图片

2.6结果展示


pic.png

三、小结
有的网站增加了反爬虫的识别功能,这时我们需要修改requests的头文件。再者就是做爬虫时,我们应该遵循目标网站的robots协议。感兴趣的同学们,可以自己试着爬取一些网上商品的信息或者其他有趣的网页内容。在小编的下一篇帖子中,会为大家正式介绍open.cv的强大功能。
创作不易,喜欢我就点个赞吧。

相关文章

  • 利用爬虫做词云分析

    首先跟大家解释下,为什么更新的是关于爬虫的内容而不是open.cv。因为小编想继承上一篇帖子(python数据可视...

  • python模拟登陆urp教务处抓取课表

    前段时间小编写了一篇利用爬虫做词云分析的帖子,有粉丝反馈说想进一步学习爬虫,所以小编今天就用爬虫模拟登陆学校的教务...

  • 招聘需求分析(爬虫+词云)

    咳咳 作为一个大三的人 正在很努力地想找一份工作 那么究竟要掌握什么样的技能才能找到工作呢 ? 瞎逼逼 肯定是不行...

  • Java爬虫小试牛刀

    爬虫?相信很多人对这个词都不陌生,简单来说,就是利用工具爬取网页上的数据并加以整理分析。照例向小白科普一下对爬虫的...

  • 利用python爬取城市公交站点

    利用python爬取城市公交站点 页面分析 爬虫 我们利用requests请求,利用BeautifulSoup来解...

  • 利用python生成词云

    利用python的wordcloud包生成词云,分析前程无忧数据分析岗位的岗位职责和岗位要求 效果

  • Java爬虫——Webmagic爬虫框架+Hibernate持久

    前言 最近想学点数据分析的知识,于是想到先用爬虫爬点数据下来,后面能够利用数据做些分析处理。由于之前没有做过爬虫的...

  • 新手向爬虫(二)站点分析

    在新手向爬虫(一)利用工具轻松爬取简书并分析中我们初步接触了爬虫,关键在于: 通过工具获取网页内容选择器 分析页面...

  • 爬取1000条百度百科词条

    爬虫是什么? 爬虫是一段自动抓取互联网信息的程序,从而可以更好利用数据进行相关分析,做出相关决策。 简单的爬虫架构...

  • 爬取淘宝、京东评论数据并制作评论词云

    一、天猫词云 1.天猫评论数据爬取 爬虫代码: 2 词频统计 3 词云 二、淘宝词云 1.淘宝评论数据爬取 2 词...

网友评论

  • bccff5a1c1d3:运行2.2 报错'NoneType' object has no attribute 'strip' 怎么破?
    PowerQuery:这是因为“links_div = soup.find("article",class_="article")”得到的不是一个string对象,用“text=link_div.text.strip()”就ok了
    氢立方:把strip后面的括弧去掉就好了,可能是在python相关版本中没有输入显示输出空字符串。但是在全代码运行中却没有报错。希望对你有帮助。

本文标题:利用爬虫做词云分析

本文链接:https://www.haomeiwen.com/subject/owvkmftx.html