2020.07
1Python 简介
Python 是一门语法简单且风格简约易读的语言。它
注重的是如何解决问题而不是编程语言本身的语法和结构。Python 语言丢一些仪式化的东西,使得语法结构尽可能的简洁,代码的可读性显著提高。
相对于C,Python 语言提高了开发者的效率。削减了原C 语言中较为复杂的、不经常使用的或者较难理解的语法,降低了编程工作的复杂程度。
此外,在代码执行方面,Python 语言省去了编译和链接中间过程,直接将源代码转换为字节码。相比其他编译型语言,用户不用去关心编译中的各种问题,这也降低了使用门槛。
除了上述优点以外,Python 相比其他脚本语言提供了强大的第三库来访问网页文档以及对抓取后的网页进行解析。因此Python 成为了网络爬虫领域的最好的工具之一。
网络爬虫,又称网络蜘蛛和网络机器人,是一种按照一定规则,自动地抓取互联网信息的程序或者脚本[1]。爬虫是收集信息的基础,开发者爬取目标网站的资料后,就可以进行分析和建立应用了。而爬虫技术的应用非常广泛,可以分为两大类,分别为采集型爬虫和监测型爬虫。采集型爬虫是在搜索引擎爬虫技术的基础上对抓取范围、意图做了不同程度的限定,从而产生一些新型应用。比如,社交媒体评论信息监测、学术论文采集、知识图谱的构建。检测型爬虫不是以采集信息为主要目标,并非要采集尽可能多的信息,而是利用爬虫在内容采集和分析方面的能力对服务器的信息内容进行监测。其典型的应用包括应用安全监测和内容安全检测。对采集到的文本型信息进行处理和分析,这是爬虫大数据采集应用的基础。
2文本可视化
文本可视化方法试图将文本内容以直观的方式展线
出来,而不是局限于文字上的描述。这种直观的表达方法不仅保留了原文本中重要的信息和关系,而且用户可以直接从里面提取出有用的信息,达到了快速吸取信息的目的。其实文本可视化离不开文本分析和处理,例如中文分词、关键词识别、主题聚焦等。
工作流程:(1)准备工作:通过浏览器进入开发者模式查看并分析目标网页。
(2)获取网页:给一个网址发送请求,该网址会返
回整个网页的数据。类似于在浏览器中键入网址并按回车键,然后可以看到整个页面[3]。
(3)解析网页:从整个网页的数据中提取想要的数
据。类似于在浏览器中看到网站的整个页面,但是想要的是产品的价格,价格就是想要的数据。当然响应的不同,解析方式也不同。需要解析的是HTML 结构数据,可以使用Scrapy 的Selector CSS 选择器进行解析,也使用正则表达式进行解析,还可以使用BeautifulSoup 解析[2]。
(4)存储数据:把数据存储下来,可直接存储为本
地文件,如TXT、CSV、JSON 等,也可保存至Oracle、MySQL 等关系型数据库或者MongoDB、Redis 等非关系型数据库中。
基金项目:大学生创新创业训练计划项目校级(S201914039051),(S201914039053)。
作者简介:黄岷昊,男,学士,研究方向:计算机科学与技术;丁浪,研究方向:计算机科学与技术;张雪莲,硕士,研究方向:大数据处理、数据挖掘。
基于Python 的网络爬虫及文本可视化
黄岷昊,丁浪,张雪莲
(四川大学锦江学院,四川眉山620860)
要:随着大数据时代的到来,面对互联网这样一个由数据构建而成的海洋,自动高效地获取互联网中我们感兴趣的信息并为我们所用面临巨大的问题。此外,对于获取到的大量文本数据,用户如何能以简单直观的方式来发现其内在价值,这是值得探讨的。为了解决以上问题,利用Python 编写网络爬虫程序对数据进行爬行,在爬取的数据基础上,进行了文本分析及可视化处理。关键词:网络爬虫;Python 语言;分词;文本可视化
24
(5)文本处理:文本是一种典型的非结构化数据,是大数据分析的关键。将文本的内容切分为单个的词汇,然后去除停用词。整理过后的文本能够提高分析效率与分析结果。
(6)文本可视化:以词语为基本单位来直观展示文本信息内容,它在互联网大数据分析中广泛应用于对文本关键词的只管显示。
3实现过程
3.1获取页面
首先import requests,使用(url,head⁃ers=headers)获取网页。值得注意的是:使用headers伪装称浏览器访问。
def getHtml(url):
headers={
"User-Agent":"Mozilla/5.0(Windows NT10.0; WOW64)AppleWebKit/537.36(KHTML,like Gecko) Chrome/55.0.2883.87Safari/537."}
(url,headers=headers)
3.2解析页面提取需要的数据
这里用到BeautifulSoup这个库对爬取下来的页面进行解析。
def getContent(html):
soup=BeautifulSoup(html,"html.parser")
items=soup.find_all("p")
return items
3.3存储数据
将文章的全部内容存储到本地的txt文件中。
def saveContent(contentList):
with open("",'w')as fp:
for i in contentList:
_text()#获取整篇文章的内容
fp.write(content)
3.4文本处理
使用jieba库对中文文本进行分词,然后使用Counter 方法进行词频统计,最后去除停用词,留下有效的词语,以提高分析效率与分析结果。
def wordFrequence():
c=[]
with open("",'r')as fp:
ad()
python网络爬虫书籍推荐words=jieba.lcut(text)
effectiveWord=[word for word in words if len (word)>1]
frequence=Counter(effectiveWord)
items=list(frequence.items())
items.sort(key=lambda x:x[1],reverse=True)#按#频率排序
for i in range(30):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
c.append(word)
text_30="".join(c)
return text_30
3.5文本可视化
使用第三方的WordCloud库,将文本中词语出现的频率作为一个权重绘制词云图。生成词云文件需要3步,即配置参数、加载词云文本信息、输出词云文件。def showImage(text_30):
w=WordCloud(width=600,height=400, font_path="",background_color="black")
plt.imshow(w)
plt.axis('off')
plt.show()
3.6运行结果
如图1所示。
4结语
通过Python定制了一个爬虫程序,对于某一特定主题内容相关的网页进行抓取,并对抓取的网页数据可视化。
参考文献
[1]Castillo C.Effective Web crawling[J].ACM SIGIR Forum,2005,39(1):55-56.
[2]游攀利,杨琳,喻淼.基于Scrapy的水利数据爬虫
设计与实现[J].水利水电快报,2020,41(05): 71-77.
[3]韦玮.精通Python网络爬虫[M].机械工业出版
社,
2017.
图1
文本可视化词云图
25
2020.07

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。