基于Python的网络爬虫设计与实现.docx





《基于Python的网络爬虫设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Python的网络爬虫设计与实现.docx(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于Python的网络爬虫设计与实现摘要:从互联网时代开始,网络搜索引擎就变得越发重要。大数据时代,一般的网络搜索引擎不能满足用户的具体需求,人们更加注重特定信息的搜索效率,网络爬虫技术应运而生。本设计先对指定URL的网址相关网页进行分析,找出网页内目标信息所在的URL信息规律;然后选择BeautifulSoup模块或lxml的html模块编写函数分级爬取这些URL;最后将URL对应的网页中的信息归类保存到文本文件中。然后利用jieba模块基于TF-IDF指标对爬取的文本中的信息进行分析,再找出词频高的词,做进一步分析。基于Python实现网络爬虫程序,先对我校近几年新闻网页进行分析,找出新闻
2、中的高频词,并绘制词云图;然后针对这次新型冠状病毒所造成的疫情,从腾讯新闻网中爬取疫情相关信息,同时根据相关信息绘制疫情分布图。两个爬虫实例表明本设计的可行性和有效性。关键词:网络爬虫,互联网,校园,疫情 Design and implementation of web crawler based on PythonAbstract:Since the Internet era, Internet search engines have become more and more essential. In period of big data, common network search en
3、gines cannot satisfy the exact needs of users, People attach importance to the search efficiency of specific information, and web crawler technology emerge as the times require. This design first analyzes the URL related web pages of the specified URL to find out the URL information rule of the targ
4、et information in the web page; then select the beautiful soup module or the HTML module of lxml to write the function to crawl these URLs hierarchically; finally, the information in the web pages corresponding to the URL is classified and saved in the text file. Then use the jeeba module to analyze
5、 the information in the crawled text based on TF IDF index, and then find out the words with high word frequency for further analysis. Based on Python, novel coronavirus is first analyzed. We find out the high frequency words in the news and draw the word cloud map. Then, in response to the epidemic
6、 situation caused by novel coronavirus, this design crawled the epidemic situation related information from Tencent News Network and drew the epidemic situation distribution map according to the related information. Two crawler examples show the feasibility and effectiveness of the design.Keywords:C
7、rawler, Internet, campus, epidemic situation目 录第1章 绪 论11.1研究背景和实际意义11.2研究现状11.3研究方法和内容21.3.1 研究方法21.3.2 研究内容2第2章 基于Python的网络爬虫技术的相关方法32.1网页分类32.1.1静态网页32.1.2动态网页32.2正则表达式32.3中文分词42.4 词云图生成52.5 数据管理62.6 BeautifulSoup6第3章 基于Python的校园网新闻信息获取与分析73.1 基于Python的校园网新闻信息爬虫实现73.1.1 网页信息获取103.1.2 版块新闻链接列表搜索113
8、.1.3版块新闻网页新闻内容获取133.2 基于Python的校园网新闻信息分析实现143.2.1新闻信息数据管理153.2.2新闻内容文本分词173.2.3停用词删除173.2.4高频词词云制作183.2.4新闻内容词语分析19第4章 基于Python的新型冠状病毒疫情爬虫实现214.1 每日疫情数据获取及曲线图绘制214.1.1 每日疫情数据爬取程序现实214.1.2 每日疫情数据曲线图绘制程序现实234.2 各地疫情数据获取及曲线图绘制254.2.1 各地疫情数据爬取程序现实264.2.2 各地疫情当前数据曲线图绘制程序现实28第5章 总 结31参考文献32致谢33第1章 绪 论1.1研
9、究背景和实际意义21世纪初起,互联网得到了蓬勃的发展,万维网成为海量信息的载体,人们希望能够有效利用万维网里的数不胜数的数据信息,所以网络信息提取成为这一愿望实现的关键。网络世界里的信息成千上万,特别是近年来信息量呈指数增长,人们更加注重从互联网上搜索自己想要信息的效率。人们开始运用搜索引擎来帮助自己在互联网中查找所需要的信息。但是一个一般的搜索引擎必然存在着一定的局限性,不同背景、不同深度、不同领域的用户检索的期望信息一定是不同的,互联网用户只想快速找到自己所需求的信息,但一般的搜索引擎返回的搜索结果包含了庞大的无效信息。通用搜索引擎在一般情况下不能提供精准且专业的信息搜索,同时查准率低、无
10、效信息多、也无法避免广告推送。因此一般的搜索引擎不可能满足特定用户的专业需求,对于这特等的用户需求则需要更加准确的搜素引擎,在大量的需求下,网络爬虫的技术得以快速发展。网络爬虫技术是一种个性化互联网数据信息搜索的网络数据信息获取技术。网络爬虫的英文名称为WebSpider。互联网就像一张巨大且密集的蜘蛛网,Spider这只蜘蛛就在这张网上不断移动。一个生动形象的比喻就是蜘蛛(WebSpider)通过网线的颤抖(网页的链接地址)来搜寻食物(网页)。从任意一个网页(一般情况下是首页)开始,读取网页中数据,从这个网页里搜索其它链接的地址,通过所找的链接地址去找下一个网页。按照这种方式不断循环,直到所
11、选取的网站里全部的网页全部抓取完为止。假定我们把整个互联网比喻成一个网站,网络蜘蛛就可以运用上述方法把互联网中一切的网页都抓取下来。在用户专业性需求下,网络爬虫程序可以在指定网页页面搜索需要的相关信息,而过滤掉其他繁杂的冗余信息,并通过程序对搜索到的信息进行归类保存。大数据时代的到来,意味着更多信息涌入,想要在互联网这片大海中捞到想要的东西也愈发困难,所以网络爬虫的意义就是越显重要。能够帮助我们节省时间和精力,同时也能确保我们找到我们想要的东西。在这个节奏越来越快的世界中,网络爬虫凭借这高效这一点,就有着无穷的意义与价值。1.2研究现状在上世纪九十年代在麻省理工学院一位叫Matthew 的老师
12、就研发出第一款有文献记载的爬虫。爬虫作为核心的搜索引擎技术已经历经近30年的发展,网络爬虫已日趋多样。为满足不同用户不同的需求,人们开发了类型繁多的爬虫。但爬虫技术在西方世界迅速发展的情况下,2004年前我国内基本对于网络爬虫技术没有什么关注,从2005年开始国内才开始关注爬虫技术。目前需求量也是也来越大,急需这方面人才。目前爬虫也只能分为两大类,一类为Google之类的大型搜索引擎的大型爬虫,另一类就是个人型爬虫或中型爬虫。网络爬虫开源系统喷涌式出现,因此人们研发一个简单的抓取系统变得不再困难,但是由于大量程序开源,使得很少有人愿意潜心研究网络爬虫的关键技术。因此在这种不良的环境下,小型爬虫
13、系统质量不高。所以对于中小爬虫的发展还是任重道远。1.3研究方法和内容1.3.1 研究方法网络爬虫应用宽度搜索技术,对URL进行分析,去重。网络爬虫使用多线程技术,让爬虫具备更强大的抓取能力。网络爬虫还要完成信息提取任务,对于抓取回来的网页进行筛选、归类。在学习使用Python软件的同时,复习网络知识,进而掌握基于Python软件的网络爬虫程序编写方法。本设计拟对我校近几年新闻网页()进行分析,获取相关网页URL及网页文本内容,然后利用jieba模块基于TF-IDF指标对爬取的文本信息进行分析,找出新闻中的高频词,并绘制词云图。同时针对今年对我国发生的新型冠状病毒肺炎疫情,利用动态网页获取方法
14、从腾讯新闻网站()下载疫情分析数据,并绘制疫情相关图。1.3.2 研究内容本设计具体内容安排如下:第1章:介绍网络爬虫的历史背景和实际现状,阐述了本设计所使用的爬虫技术,简单描述了本设计的两个实际应用的实现。第2章:介绍一些基于Python的网络爬虫的相关方法。第3章:校园网新闻信息获取的程序介绍,分析和运行结果的图片展示。第4章:新型冠状病毒疫情爬虫的程序介绍,分析和运行结果的图片展示。第5章:总结。 第2章 基于Python的网络爬虫技术的相关方法2.1网页分类互联网里众多网页主要将其分为静态和动态。当然静态是相对于动态而言的,比不是说静态就是一点不会变动的。2.1.1静态网页在网站设计中
15、,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为“静态网页”,静态网页是标准的HTML文件,它的文件扩展名是.htm、.html,可以包含文本、图像、声音、FLASH动画、客户端脚本和ActiveX控件及JAVA小程序等。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。2.1.2动态网页动态网页 URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形动态网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号“?”。 动态网页一般以数据库技术为基础,可以大大降低
16、网站维护的工作量,采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等。同时动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页。不只有HTML代码写出的网页被称为动态网页,这些网页一般由CSS,JavaScript代码和HTML代码一起构成网页,它们用Ajax动态加载网页的数据不一定出现在HTML代码中,这就需要复杂的操作。2.2正则表达式正则表达式概念:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。是一个特殊的字符序列,它能帮助你方便的检查一个字符串
17、是否与某种模式匹配。正则表达式的特点是:1. 灵活性、逻辑性和功能性非常强。2. 可以迅速地用极简单的方式达到字符串的复杂控制。re模块使 Python 语言拥有全部的正则表达式功能。比如:re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。re.search 扫描整个字符串并返回第一个成功的匹配。pile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 searc
18、h() 这两个函数使用。re.findall 方法能够以列表的形式返回能匹配的子串2.3中文分词中文分词,即 Chinese Word Segmentation,将一个汉字序列进行切分,得到一个个单独的词。表面上看,分词其实就是那么回事,但分词效果好不好对信息检索、实验结果还是有很大影响的,同时分词的背后其实是涉及各种各样的算法的。中文分词主要应用于信息检索、汉字的智能输入、中外文对译、中文校对、自动摘要、自动分类等很多方面。下面就以信息检索为例来说明中文分词的应用。例如:“制造业和服务业是两个不同的行业”和“我们出口日本的和服比去年有所增长”中都有“和服”,而被当作同一类来处理,结果是检索“
19、和服”的相关信息,会将他们都检索到,在信息量少的情况下,似乎还能够忍受,如果是海量信息,这样的结果就会令人讨厌了。通过引入分词技术,就可以使机器对海量信息的整理更准确更合理,在“制造业和服务业是两个不同的行业”中“和服”不会被当做一个词来处理,那么检索“和服”当然不会将它检索到,使得检索结果更准确,效率也会大幅度的提高。所以中文分词的应用会改善我们的生活,使人们真正体会到科技为我所用。从排序里取出预定前N个最优文本特征作为原始语料文本特征子集。基于词频和逆文档频率的TF-IDF算法是一种十分流行的文本特征选取算法。对于文档的特征词,其在文档中出现的总次数为;文档中出现的词的总数为;表示语料库中
20、文档总数;表示包含词语的文档总数。TF和IDF分别为词频和逆文档频率,TF-IDF是一种常用的加权指标,多用于信息检索与数据挖掘。基于TF-IDF的特征选择思想是:如果某个词在某篇文章中出现的频率很高,在其他文章中出现的频率相对较低,那么就说明这个词在这篇文档中比较重要,即可作为这篇文章的一个分类特。(1)(2)(3)公式中,表示包含词语的文档总数,如果不在语料库中,则分母项为0,因此一般情况下使用作分母,一般用IDF平滑后的公式:(4)词频表示词语在文档中相对于语料库所有文件的出现概率,该词在文档中出现次数越高,值就越大;逆文档频率则用另一种形式表示相反的情况,反应包含词语的文档相对于语料库
21、所有文档出现的逆概率,包含该词的文档出现的次数越多,逆文档频率值越低。某词语在某特定文件内的高词频,以及其在整个文件集合中的低逆文档频率,可以得出较高的值。基于指标可以过滤掉语料库文档中普遍出现的词语,保留在某些文档中出现频次较高的具有丰富分类特性的重要词语(后文简称特征词)。2.4 词云图生成在现在互联网信息时代,我们能在各种手机app或计算机网页上看见各式各样的词云图,词云图可以帮助我们从庞大且杂乱的信息中提取出现概率最高的词,让使用者更加清楚且直观的看到有效信息。词云库把词云当作一个对象,WordCloud()是一个文本中与其相对的词云。本设计依据词语出现频率高低的来绘制图片,同时设定词
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python 网络 爬虫 设计 实现

限制150内