Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 学习教育 > 基于Python的网络信息自动抓取系统毕业论文

基于Python的网络信息自动抓取系统毕业论文

收藏

本作品内容为基于Python的网络信息自动抓取系统毕业论文,格式为 docx ,大小 52169 KB ,页数为 19页

基于Python的网络信息自动抓取系统毕业论文


('基于Python的网络信息自动抓取系统摘要随着移动互联网的快速发展和5G技术的投入建设,信息在社会发展中起着至关重要的作用,具备着前所未有的价值。人们想要掌握最新的信息和了解社会的发展趋势,就要不断递增花在阅读网络信息的时间。怎么从浩瀚的信息海洋中迅速有效地提取所需信息已经越来越重要。搜索引擎也随着我们的需求而诞生和发展,它以爬虫技术为核心。为提高用户访问网页信息的效率,本设计基于Python的Scrapy爬虫框架和MySQL后台数据库,以“百度新闻”为爬取对象,实现定时自动抓取指定范围的网页信息并存储到后台数据库中,并使用hashlib模块过滤重复数据。关键词:爬虫技术Scrapy爬虫框架MySQL数据库定时自动AutomaticnetworkinformationgrabbingsystembasedonPythonName:DiaoYangjianMajor:ElectronicInformationScienceandtechnologyInstructor:WanChanglin,AssistantResearcher(ElectronicInformationandElectricalEngineeringDepartmentofHuizhouUniversity,No.46,YandaAvenue,HuizhouCity,GuangdongProvince,516007)AbstractWiththerapiddevelopmentofmobileInternetandtheinvestmentof5gtechnology,informationplaysanimportantroleinthesocialdevelopmentandhasunprecedentedvalue.Ifpeoplewanttomasterthelatestinformationandunderstandthedevelopmenttrendofsociety,theyneedtospendmoreandmoretimereadingnetworkinformation.Howtoextracttheneededinformationfromthevastoceanofinformationquicklyandeffectivelyhasbecomemoreandmoreimportant.Searchengineisalsobornanddevelopedwithourneeds.Ittakescrawlertechnologyasthecore.Inordertoimprovetheefficiencyofusers\'accesstowebinformation,thisdesignisbasedonPython\'sscrapycrawlerframeworkandMySQLbackgrounddatabase,taking"Baidunews"asthecrawlingobject,torealizetheautomaticcrawlingofthespecifiedrangeofWebinformationandstorageinthebackgrounddatabase,andusehashlibmoduletofiltertheduplicatedata.Keywords:crawlertechnologyscrapycrawlerframeworkMySQLdatabasetimedautocrawl目录1前言....................................................................11.1研究背景...........................................................11.2研究意义...........................................................11.3研究内容...........................................................12设计原理以及相关技术介绍................................................32.1Scrapy爬虫框架....................................................32.1.1Scrapy分析...................................................32.2Robots协议........................................................42.2.1Robots协议简介...............................................42.2.2协议的写法...................................................52.2.3Robots协议的缺点及影响.......................................52.3正则表达式.........................................................52.3.1简介.........................................................52.3.2应用场景.....................................................52.3.3贪婪模式与懒惰模式...........................................52.4XPath表达式.......................................................62.4.1简介.........................................................62.5MySQL数据库.......................................................62.5.1简介.........................................................62.5.2MySQL数据库的特点............................................62.6Fiddler............................................................62.6.1为什么使用Fiddler............................................62.6.2为什么选择Fiddler............................................72.6.3简介.........................................................72.7hashlib模块.......................................................72.7.1简介.........................................................72.7.2MD5算法......................................................83基于Scrapy框架的百度新闻爬虫具体实现...................................93.1爬取对象简介.......................................................93.2网络爬虫实现细节...................................................93.2.1创建Scrapy爬虫项目和爬虫应用程序............................93.2.2配置items.py文件,设置数据存储容器.........................103.2.3使用Fiddler抓包工具分析URL规律.............................113.2.4配置news.py文件,设置爬虫程序..............................123.2.5配置settings.py文件........................................143.2.6创建MySQL数据库............................................153.2.7配置pipelines.py文件,进行数据处理.........................153.2.8设置定时爬取模块............................................164爬虫测试与效果展示.....................................................174.1运行状态及测试....................................................174.2数据抓取结果展示..................................................175总结与展望.............................................................195.1总结..............................................................195.2期望..............................................................19参考文献.................................................................20致谢.....................................................................2151前言1.1研究背景如今已经是2020年,随着移动互联网的快速发展和5G技术的投入建设,移动互联网越来越普及,社会生活的基本方式正在悄无声息的发生变化。当今时代,互联网越来越贴近人们的生活,已经成为生活的必需品。人们的衣食住行都与互联网息息相关,不可分离。许多行业都深受互联网的影响,即使是历史悠久的传统行业。在这个时代,信息就是金钱,具备着前所未有的价值,已经成为社会发展不可或缺的一部分。为了让自己做出正确的判断,我们要掌握最新的信息和了解社会的发展趋势,造成人们花在阅读网络信息的时间不断递增。互联网是一个浩瀚的信息海洋,是大量信息的载体,怎么从海洋中迅速有效地提取所需信息是非常困难的,无异于大海捞针,更何况想要利用这些信息了。与此同时,搜索引擎也随着我们的需求而诞生和发展。1.2研究意义搜索引擎可以当成是一个入口或者指南。它可以帮助人们从互联网中搜索信息,是人们获取互联网资源的重要途径,给人们带来了便利。但是,局限性是通用性搜索引擎的最大缺点。例如,通用搜索引擎是通过关键字来搜索的,然后返回大量的数据信息给用户,但是在这些信息中,并不都是用户所关心和需要的数据信息,里面还有许多是用户并不关心的数据信息。聚焦爬虫具有高度的可自定义性,可以帮助我们迅速有效的提取需要的信息。它按照程序设计者所设定的规则,有选择的访问互联网上的网页,或者是与之相关的链接。Scrapy爬虫框架可以让聚焦爬虫的设计和工作变得更加方便。1.3研究内容本设计主要研究的内容如下:(1)获取数据:使用Scrapy框架对百度新闻网站首页进行访问,获取各栏目的新闻数据信息。6(2)数据存储:将各栏目的新闻数据信息存储到MySQL后台数据库中。(3)进行数据的过滤去重:使用Python编程语言的hashlib库的MD5算法,对获取的新闻网页URL进行加密处理,得到唯一的32位的十六进制字符串值,从而达到数据过滤去重的效果。(4)定时爬取,更新数据库:使用Python编程语言的Time模块,对爬虫进程设置定时循环,从而不断更新数据库的数据。72设计原理以及相关技术介绍网络爬虫是一段程序或者脚本。首先,分析百度新闻网站首页的HTML代码的规律,从而获取初始的URL。其次,爬取初始的URL的内容并分析HTML代码规律,从而获取百度新闻网站首页的所有新闻网页链接。然后,爬虫先访问获得的新闻网页链接。若能够访问则自动下载其中的内容,再通过解析模块,解析得到已爬取页面中我们所需要的信息。接着,将所爬取到的信息存储到MySQL后台数据库中,方便我们查询信息和统计。最后,设置定时爬取,可以不断的更新数据库的数据。2.1Scrapy爬虫框架2.1.1Scrapy分析Scrapy是一套比较成熟的web爬虫框架。它可以用来爬取web数据,也可以用来提取结构性的数据。它让网络爬虫的设计和工作变得更加方便。它的应用范围非常广泛,例如,可以对大数据进行深度挖掘,也可以对大批的信息进行处理,还可以对历史数据进行存储等。Scrapy具备很强的拓展性,可以灵活的完成许多需求。Scrapy整体框架由7个部分组成:(1)ScrapyEngine(引擎):引擎负责控制整个数据处理过程,以及触发一些事务处理,控制和协调各个组件。(2)Scheduler(调度器):主要负责存储待爬取的网址,并确定这些网址的优先级,决定下一次爬取哪个网址等。(3)Downloader(下载器):实现对网络上要爬取的网页资源进行高速下载。(4)Spider(爬虫):该组件是核心。它负责接收引擎中的response响应,然后对响应进行分析处理,提取出关注的数据。(5)ItemPipeline(项目管道):负责接收提取的item,然后对这些item进行对应的处理。(6)DownloaderMiddlewares(下载中间件):处于下载器和引擎之间,8主要用于对下载器和引擎之间的通信进行处理。(7)SpiderMiddlewares(爬虫中间件):处于引擎与爬虫组件之间,主要用于对爬虫组件和引擎之间的通信进行处理。Scrapy基本运行流程:(1)首先,需要确定要爬取的目标,所以引擎先从调度器中选择一个URL。(2)引擎收到URL后,将其打包成一个请求,然后传给下载器。(3)下载器把资源下载下来,将资源打包成应答包。(4)爬虫接收应答包,再解析它,并使用回调函数。(5)如果从该应答包中解析出实体,再交给项目管道,然后才进行进一步的处理。(6)如果解析出的结果是URL,则将新获得的URL发送给调度器等待被调用抓取。2.2Robots协议2.2.1Robots协议简介Robots协议也称为爬虫协议。它存放于网站根目录下,是一个ASCII编码的纯文本文件。它是互联网行业中约定俗称的一种准入规范,其目的在于告知所有的搜索引擎,在此网站中,哪部分内容是允许被获取的,哪部分内容是不允许被获取的。爬虫在进入网站之前,首先要查看robots.txt。如果该文本文件存在,则解析其中的规则,然后再确定访问的范围。如果该文本文件不存在,则说明该网页的所有数据都可访问。2.2.2协议的写法robots.txt放到网站根目录下即可,一个robots.txt只能控制相同端口,相同站点的网页抓取策略。常规写法如下:(1)User-agent:声明哪些爬虫不允许访问此网站。9(2)Disallow:声明了哪些URL是禁止访问的,不允许任何爬虫进入。2.2.3Robots协议的缺点及影响各网站设置了Robots协议以防止搜索引擎机器人抓取敏感信息。但是它只是一个通告,需要搜索引擎机器人的配合,才可以使得搜索引擎机器人受到限制,不允许抓取站点的内容。但是,在实际情况中并不是每个ROBOTS都会自觉遵守的。若网络爬虫的设计者违背这个协议,伪装成其他身份进入,其设计的代码也将能够自由爬取站点中的资源。2.3正则表达式2.3.1简介正则表达式是一套规则,用于描述字符串排列。对于某些特定字符,或者是这些特定字符的组合,它可以预先定义好,形成一个“字符串”。它表示的是字符串的一种过滤逻辑,可用来检查,判断某个种子字符串是否存在于该字符串中,若存在,替换匹配的子字符串;它也可以应用在从某个字符串中取出满足某个条件的子字符串等。正则表达式能够很容易地提取到我们需要的信息。2.3.2应用场景(1)验证:表单提交时,进行用户名密码的验证。(2)查找:从大量信息中快速提取指定内容,在一批url中,查找指定url。(3)替换:先对特定格式的文本进行搜索,然后再进行匹配,成功后再进行特定的替换。2.3.3贪婪模式与懒惰模式(1)贪婪模式:re库默认采用贪婪模式,即正则表达式在匹配时,会尽量多的匹配符合条件的内容,输出匹配最长的子串。(2)懒惰模式:在正则表达式在匹配时,会尽量少的匹配内容。模式切换的方式:通过在“”或者“+”限定符之后放置“?”。102.4XPath表达式2.4.1简介XPath是一种XML路径语言。它是一种定位和处理可扩展标记语言XML文档中项目的方法,主要是通过使用基于文档逻辑结构或者层次结构路径的寻址语法。XPath通常用于提取数据,通过这些数据,我们可以在web页面中获得所需的内容,其实xml和html的数据可以看成一个树形的结构,每个树有很多树枝(树枝称为节点),XPath语法提供了在树中查找不同节点的能力。2.5MySQL数据库如何处理Scrapy爬虫获取的数据需要认真的考虑。Python中有很多种存储方法,因为在本次设计中没有涉及到分布式爬虫,所以我选择的是使用MySQL数据库进行数据存储。2.5.1简介数据库,是一个存储大量数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律将数据存储起来,用户可以在数据库中添加、修改、删除和查询数据。MySQL数据库是一种关系型数据库管理系统。在关系型数据库中,可以将数据存储在不同的表中,而不是将所有数据都存储在一个大型仓库里,这样可以提高速度和灵活性。2.5.2MySQL数据库的特点MySQL数据库是不收费的,人们可以直接下载并使用。它能够有效、快捷地处理大量的数据。MySQL数据库具有处理速度快、占用体积小等优点,其中,最为重要的是其开源的优点,所以MySQL数据库常常受到网站开发者的青睐。112.6Fiddler2.6.1为什么使用Fiddler网络爬虫是自动爬取网页的程序,在爬取的过程中必然涉及客户端与服务器端之间的通信,自然也需要发送一些HTTP请求,并接收服务器返回的结果。在一些稍复杂的网络请求中,我们直接看网址的变化是看不出规律的,此时如果要进行自动化爬取网页,就必须要通过程序构造这些请求,而要通过程序构造这些请求,就必须首先分析这些请求的规律。所以此时我们要使用工具截获这些请求,对这些请求进行分析。2.6.2为什么选择Fiddler目前,抓包工具有很多,为什么使用Fiddler呢?原因如下:(1)尽管firebug可以获取数据包,但它的功能还不足以分析HTTP请求的细节。模拟HTTP请求的能力也不够,因为firebug通常是需要“无刷新修改”。如果刷新了页面,所有的修改都不会保存。(2)Wireshark功能齐全,但凡事有利必有弊。因此,它的规模较为庞大。对于我们来说,只需要捕获HTTP请求的应用程序即可,所以,它似乎是过度限定的。(3)Httpwatch仅支持IE和firefox浏览器(其他浏览器可能会出现一些问题),因此,这对于大多数使用者来说有些力不从心。(4)浏览器本身就拥有调试工具。优点是浏览器自带,比较轻量,但无法支持一些比较复杂的抓包。因此,并不适合本设计。(5)Fiddler具有很强的通用性且操作简单。只要能够将HTTP代理设置为127.0.0.1:8888,任何浏览器和应用程序都可以使用Fiddler。2.6.3简介Fiddler是比较好用的web代理调试工具之一,它使用的代理地址是:127.0.0.1,默认端口为8888,也可以设置修改。它以代理服务器的方式,位于客户端和服务器端之间,监听网络数据流动。Fiddler可以支持众多的HTTP调试任务。例如,可以设置断点,或者重新发送、修改请求数据和转存等操作,也可以用来检测网络安全和流量,功能非12常的强大。2.7hashlib模块2.7.1简介hashlib包含着MD5和SHA的算法,它主要是应用于安全领域中的加密算法。而我们一般使用的比较多的是MD5算法。MD5和SHA是摘要算法,什么是摘要算法呢?就是将任意长度的输入,变成固定长度的输出。摘要函数是一个单向函数,计算f(data)很容易,但是通过digest反推data非常困难,对data做任意修改,计算出的摘要值是完全不相同。2.7.2MD5算法MD5算法快速且常用。它的结果是固定的16字节,通常由一个32位十六进制字符串表示。SHA1算法更安全。它的结果是固定的20字节,通常由一个40位十六进制字符串表示。安全系数更高的算法有sha256、SHA512等,但安全系数越高,算法就会越慢,并且摘要长度也越长。MD5算法特点:(1)抗修改性:原数据如果有任意一丝的改变,生成的MD5值也会有很大的区别。(2)压缩性:对于任意数据,无论其长度如何,生成的MD5值长度一样。(3)可靠性:相同算法以及相同的字符串获得的密文结果总是相同。(4)强抗碰撞性:即使给定原始数据和MD5值,也很难找到MD5值相同的伪造数据。(5)易于计算:无论原数据是什么,计算出MD5值都非常容易。无论数据有多大,都可以快速计算MD5字符串的字符串。133基于Scrapy框架的百度新闻爬虫具体实现3.1爬取对象简介本设计实现的网络爬虫是以“百度新闻”网站的首页为爬取目标,爬取的内容为网站首页的各个栏目新闻的标题、网页链接和新闻的文本内容,并存储到MySQL后台数据库中,爬取的栏目分别有城市栏目、国内栏目、国际栏目、娱乐栏目、体育栏目、财经栏目、科技栏目、军事栏目、互联网栏目、探索栏目、女人栏目、健康栏目和图片新闻。百度新闻是一种24小时的自动新闻服务,每隔5分钟就会自动选取更新。它与其他新闻服务不同,新闻来源包括500多个权威网站,手机和过滤来自数千个新闻来源的新闻报道。热点新闻每天由新闻源网站和媒体“民主投票”评选,没有任何人为的编辑元素,突出了新闻的客观性和完整性。本设计选取“百度新闻”作为爬取对象,我们可以接触到很多方面的内容,如网页结构解析、fiddler抓包工具、hashlib模块以及MySQL数据库的连接与存储等,这可以帮助我们进一步的了解网络爬虫的工作原理和流程。同时,我们获得的新闻信息也是极具价值的。3.2网络爬虫实现细节3.2.1创建Scrapy爬虫项目和爬虫应用程序在本设计中,我们首先需要创建一个Scrapy爬虫项目和爬虫应用程序,具体操作如下:(1)首先,键盘按住win+R,并在输入窗口中输入cmd,打开命令提示符;(2)进入D盘目录下的Scrapy文件夹,并输入Scrapy命令“scrapystartprojectbaidunews”创建一个名为“baidunews”的爬虫项目;(3)进入“baidunews”文件夹,输入“scrapygenspider-tbasicnewsnews.baidu.com”创建一个名为“news”的爬虫应用程序。至此,我们已经完成了Scrapy爬虫项目和爬虫应用程序的成功创建,项目结构如下:14其中,news.py文件是爬虫设置文件,需要爬取什么网页和数据的提取都是在此文件中编写;items.py文件是设置数据存储模板,用于结构化数据;pipelines.py文件为爬虫项目的管道文件;settings.py文件是设置文件。3.2.2配置items.py文件,设置数据存储容器在本设计中,我们需要爬取的内容为百度新闻网站首页的各个栏目新闻的标题、网页链接和新闻的文本内容,所以我们先确定三个容器用来存储相应的数据,分别是“title”、“link”和“content”。因为在本设计中设置有定时爬取模块,可能会爬取到重复的新闻内容,为了避免MySQL数据库数据冗余,因此,本设计选择使用hashlib模块,并利用其中的MD5算法,对爬取到的新闻链接进行加密处理得到一个32位的十六进制字符串作为MySQL数据库的主键,从而达到消除数据冗余的目的。因此,还需要设置一个容器“md5”用以存储MD5算法处理后得到的数值。本设计使用的源代码如下所示:3.2.3使用Fiddler抓包工具分析URL规律因为在百度新闻首页网站的HTML代码中发现里面包含的信息并不完整,无法直接得到所有的新闻链接,加入了反爬虫技术,因此猜测数据内容隐藏在动态数据JS(JavaScript)中,使得我们无法直接获得全部数据。因此,我们需要使用Fiddler进行分析规律。通过Fiddler工具可知,所有栏目的信息都隐藏在下图的类似链接中:将所有栏目的信息链接进行对比,得到链接规律如下:"http://news.baidu.com/widget?id="+XXX+"&ajax=json",所有栏目的信息链接的区别只在于id值有所不同。因此,我们可以先得到所有栏目的id值并存放到一个列表中,然后依次取出并替换到XXX中得到所有栏目的完整链接。3.2.4配置news.py文件,设置爬虫程序news.py是整个项目的核心部分,网页爬虫的实现代码主要在这里。完成该文件的配置,需要进行以下步骤:进行一级爬取:如今我们已经得到了所有栏目的完整链接,所以我们只需15要依次从列表中取出完整链接并进行访问爬取,即可获得百度新闻首页网站所有栏目的HTML代码并将内容交给下一个解析函数next进行下一步的处理。(2)进行二级爬取:通过第一次的爬取,我们已经获得了所有的百度新闻首页网站所有栏目的HTML代码内容,里面包含了所有栏目的新闻链接,通过观察HTML代码发现,可以轻松的通过re库的正则表达式来快速提取所需的新闻链接。但是有部分提取到的新闻链接内容是不规则的,如果不修改的话则无法直接访问爬取,所以需要进一步的修改处理。经过修改处理后,我们已经得到了百度新闻首页网站所有栏目新闻的正确链接,因此我们对所有新闻的正确链接进行访问爬取,从而获得所有新闻的网页内容并交给解析函数next2进行下一步的处理。(4)数据信息提取:经过第二次的爬取,我们已经成功获得了百度新闻首页网站所有栏目新闻的HTML代码内容,然后,我们从中提取出需要的数据信息,最后存储到相应的容器中。直接提取数据的方法有很多种,在本设计中,使用XPath表达式来提取数据信息相比于其他几种方法更加的方便和迅速。通过观察大量的新闻网页的HTML代码找到数据提取规律并将所需数据提取出来,然后将所获得的数据存储到相应的容器中,并交给pipelines.py文件进行数据处理。新闻URL过滤去重:通过第一次的爬取,我们已经获得了所有的百度新闻首页网站所有栏目的新闻链接,因为在本设计中设置有定时爬取模块,可能会爬取到重复的新闻内容,为了避免MySQL数据库数据冗余,因此,本设计选择使用hashlib模块,并利用其中的MD5算法,对爬取到的新闻链接进行加密处理得到一个32位的十六进制字符串存储到容器md5中作为MySQL数据库的主键,从而达到消除数据冗余的目的。3.2.5配置settings.py文件编写配置settings.py文件,必须在pipelines.py文件处理从网络爬虫中16获取的items之前,否则可能会导致数据无法得到处理。首先,因为本设计对“百度新闻”网站进行爬取只是为了研究和学习网络爬虫的相关技术,并非用在商业盈利方面,所以在爬虫开始前需要将ROBOTSTXT_OBEY改为False,意义为不遵从网站设定的Robots协议,否则网络爬虫会很快就停掉的。其次,我们还要规定item的处理类,在settings.py中找到ITEM_PIPELINES,并将其注释前缀去掉,使得pipelines.py文件可以运行起来。3.2.6创建MySQL数据库为了存储从网络爬虫得到的数据信息,首先,我们需要先配置好MySQL数据库的信息,分别设置host的值为“127.0.0.1”,user的值为“root”,passwd的值为“123456”。其次,进入MySQL数据库系统,创建一个名为“baidunews”的新数据库,并在该数据库中创建一个名为“news”的表格用以存储网络爬虫获得的数据信息。在该表格中,创建四个属性分别是“title”,“link”,“content”和“md5”,并设置md5属性为主键。结果如下图所示:3.2.7配置pipelines.py文件,进行数据处理经过news.py文件进行网络爬虫后,已经得到了我们所需要的百度新闻网站首页的各个栏目新闻的标题、网页链接、新闻的文本内容和网页链接的MD5值,并且存放在items中交由pipelines.py进行数据处理。在进行数据存储之前,先建立起与MySQL数据库系统的连接。其次,使用for循环语句将items的每个新闻网页的数据提取出来,然后再执行SQL语句,并对执行语句进行异常捕捉,若是重复数据则输出“插入重复数据”,若不是重复数据则成功插入到数据库中,最后再关闭MySQL数据库连接进行数据保存。本设计使用的源代码如下所示:3.2.8设置定时爬取模块百度新闻是一种24小时的自动新闻服务,每5分钟会自动选取内容更新。所以,我们设置定时爬取模块,使用while循环语句和Time库的延时函数,当百度新闻首页网站每5分钟自动选取更新一次内容时,我们的网络爬虫也重新17爬取一遍网页,将新的新闻内容存储到MySQL后台数据库中,不断地更新MySQL数据库数据,达到与时俱进的效果。4爬虫测试与效果展示4.1运行状态及测试(1)首先,键盘按住win+R,并在输入窗口中输入cmd,打开命令提示符;(2)先进入D盘目录下的Scrapy文件夹,再进入“baidunews”文件夹,并输入“scrapycrawlnews--nolog”执行爬虫,得到消除日志信息后的网络爬虫结果。由上可知,网络爬虫可以正常运行,并且成功获得了百度新闻首页网站各栏目新的新闻数据信息,随后添加到MySQL后台数据库中,而对于重复的新闻数据信息也会输出提醒“插入重复数据”,不会添加到MySQL数据库中造成数据冗余。4.2数据抓取结果展示进入到MySQL数据库系统中,打开“baidunews”数据库,进入“news”表格,可以看到Scrapy网络爬虫得到的数据信息。5总结与展望5.1总结在本文中,首先介绍了网络爬虫的产生背景和意义以及网络爬虫的特点和基本原理。然后介绍了Scrapy爬虫框架的基本结构、各模块功能和运行的基本流程;介绍了信息提取方式如正则表达式和XPath表达式的基本概念和使用方法;介绍了利用Fiddler抓包工具对动态网页数据的进行捕获和分析的方法;介绍了hashli模块的MD5算法实现网页URL的过滤去重。18本设计基于Python和Scrapy等开源技术,实现了一个以“百度新闻”首页网站新闻为目标的简单聚焦网络爬虫。本设计完成了以下任务:(1)使用Scrapy爬虫框架,对百度新闻首页网站的各栏目新闻信息进行数据获取;(2)使MySQL数据库和Scrapy网络爬虫进行连接,将获取的数据存储到MySQL后台数据库中,进行数据存储;(3)使用Python编程语言的hashlib库的MD5算法,对获取的新闻网页URL进行加密处理从而达到数据过滤去重的效果;(4)使用Python编程语言的Time模块,对爬虫进程设置定时循环,从而不断更新数据库的数据。通过本次研究,我们可以发现网络爬虫技术已经渗透到我们周围的每一个地方。学会网络爬虫开发,可以让我们对这个数据时代有着更好的理解。5.2期望如今,随着信息时代的发展,人们对于信息数据的需求越来越迫切。实践证明,利用Scrapy进行网络爬虫开发可以极大地提高效率,带来了极大的便利。但与成熟的面向海量终端还有一定的差距。因此,我认为还可以在以下几个方面做出适当的改进:(1)可以考虑实现爬虫的分布化,引入Redis开源框架。这样将大大提高网络爬虫的性能。(2)开发一个搜索引擎。用户可以选择关键字进行搜索网络爬虫的获得数据,从而实现前端的交互。(3)它可以拓展到其他网站中去,比如搜索文学内容,这将是非常具有公益性的。19参考文献[1]安子建.基于Scrapy框架的网络爬虫实现与数据抓取分析[D].吉林大学,2017.[2]方芳.基于Scrapy框架京东网站笔记本电脑评论数据爬取和分析[J].电脑知识与技术,2020,[2]16(06):7-9.[3]鲁丰玲.基于Scrapy的招聘信息爬虫设计与实现[J].科技资讯,2019,17(20):7-10.[4]周中华,张惠然,谢江.基于Python的新浪微博数据爬虫[J].计算机应用,2014,34(11):3131-3134.[5]云洋.基于Scrapy的网络爬虫设计与实现[J].电脑编程技巧与维护,2018(09):19-21+58.[6]汪兵.基于Scrapy框架的分布式爬虫系统设计与实现[D].合肥工业大学,2019.[7]李俊华.基于Python的网络爬虫研究[J].现代信息科技,2019,3(20):26-27+30.[8]李培.基于Python的网络爬虫与反爬虫技术研究[J].计算机与数字工程,2019,47(06):1415-1420+1496.[9]毕志杰,李静.基于Python的新浪微博爬虫程序设计与研究[J].信息与电脑(理论版),2020,32(04):150-152.[10]严家馨.基于Python对资讯信息的网络爬虫设计[J].科学技术创新,2020(05):57-58.[11]耿大伟.基于Python技术的校园网搜索引擎的设计与实现[D].燕山大学,2015.[12]孙瑜.基于Scrapy框架的网络爬虫系统的设计与实现[D].北京交通大学,2019.[13]李杰秦.基于Python语言下网络爬虫的技术特点及应用设计[J].数字通信世界,2020(01):209-210.[14]陈康琛,刘进进,陈兴雷.基于网络爬虫的学生就业信息挖掘与推送研究[J].电脑知识与技术,2019,15(19):6-8+13.[15]杨君,陈春玲,余瀚.基于Scrapy技术的数据采集系统的设计与实现[J].计算机技术与发展,2018,28(10):177-181.',)


  • 编号:1700739822
  • 分类:学习教育
  • 软件: wps,office word
  • 大小:19页
  • 格式:docx
  • 风格:商务
  • PPT页数:52169 KB
  • 标签:

广告位推荐

相关学习教育更多>