- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
基于PythonScrapy技术的新闻线索汇聚实现
?
?
摘要:本文探讨利用Python技术从HTML网页信息中提取需要的、有价值的数据和链接。本文采用的Scrapy网络爬虫框架,从海量数据中获取所需要的新闻线索汇聚给媒体编辑记者。
关键词:Python;Scrapy框架;大数据;新闻线索汇聚
在目前全媒体时代下,面对大量新涌现出来的媒介,全通过媒体数据采集、智能化数据分析提高新闻工作者的效率。大数据的集聚发展,用户通过互联网获取信息已经成为日常习惯。当移动端的快速发展,用户可以随时访问互联网获取相关信息,多样化的信息在网络上获取和生成,信息的拷贝转发也在同时进行,使得数据量在成倍的不断增长。这些数据量多并且冗余,要从这些数据中能够快速精准的获取相关的信息,同时能够尽可能全的获取相应的新闻信息,将这些新闻汇聚是新闻工作者研究的重要前沿课题。基于Python的Scrapy框架开发的新闻汇聚系统,能够将数据快速进行全面的汇聚。系统根据指定的主网、数据类型等一些关键字,收集相应的新闻数据,然后将这些数据经过预处理筛选和数据分类。实时快速的获取新闻数据以及精准的数据内容,能够提高新闻工作者的工作效率。
1
PythonScrapy简介
1.1PythonScrapy框架
Scrapy是在Python语言基础上实现的一套应用框架,主要用途是爬取网站数据并且提取数据,其用途非常广泛。Scrapy是事件驱动的网络框架,当前Scrapy使用非常广泛,用于各行各业,可以对网站的数据进行挖掘,并且能够监测数据,整体框架大致分为以下:
(1)引擎:该功能主要是承担控制系统中各个组件的数据流,监测相应的动作,从而触发相应的事件;
(2)调度器:该功能主要是接受上面引擎发来的请求,将这些请求放入在已有的队列中里,当引擎再一次的请求触发数据返回。这个队列是自动对URL进行智能化排序,自动分配下次需抓取的网站,并且能够剔除队列中重复的网站;
(3)下载器:该功能主要是用于或网页中的内容,获取完后将内容传递给EGINE,该下载器是在异步模型上的,能够处理并发的数据请求;
(4)爬虫:该功能是代码开发自定义的类,主要用于解析responses,同时能够对items进行提取工作,还能发送新的请求;
(5)项目管道:该功能是在items提取后,对其进行数据处理,其工作主要有数据清理、数据验证、持久化等等一系列操作,下载器的中间件存在于引擎和下载器的中间层,其目的是处理从EGINE传到DOWLOADER的请求request处理,以及从DOWNLOADER传到EGrNE的响应response请求处理;
(6)爬虫中间件:位于EGINE和SPIDERS之间,主要工作是处理SPIDERS的输入(即responses)和输出(即requests)。
1.2Scrapy工作原理
Scrapy中的数据流由引擎控制,其操作流程按如下进行:
(1)爬虫主程序工作是将需要下载的页面请求requests传递给引擎,当引擎获取到该请求是,同时转发给Scrapy调度器;
(2)调度的工作是进行优先级排序以及去重处理,调度再从排序和优化好的队列中提取一个请求,再通过引擎传递到下载器;
(3)下载器下载页面,将生成的响应通过下载器中间件发送到引擎;
(4)爬虫主程序执行数据解析,程序的解析函数返回两种类型的数据,一种数据时是items,一种数据是链接,这些requests按上面步骤交给调度器;items交给数据管道;
1.3基于PythonScrapy爬蟲方法
PythonScrapy爬虫主流的方法有:
(1)构建IP代理池方法;爬虫软件需要极短的时间内产生大量的访问请求操作,当爬虫的IP地址一直固定使用,很有可能会被某些网站禁用,这时使用IP代理方法解决被禁用问题。
(2)构建cookies池方法:在实际应用中有很多网站是需要登录才能进行相应的访问操作,爬虫软件需要产生cookies信息并且访问时能够携带。为防止被认定为异常账户,需要对账号进行随机的处理,因为使用同一的cookies信息很有可能导致账户异常。所以爬虫软件需要构建本地cookies池,在执行爬虫操作是,能够随机切换cookies信息。
(3)突破登陆限制方法:有些网站登陆更加复杂,不仅仅是简单点的账户密码,还会添加验证码操作才能执行访问网页操作,主要步骤如下:第一步是分析其登陆页面源码,提取其xsrf值,因为登陆国产中需要用到这个值,同时还有验证码校验,提取正确验证码才能进行下一步的访问;第二步用PythonScrapy框架编写爬虫软件,通过spiders文件中的parse方法,通过该方法提取页面源码里的xsrf值,再将xsrf值写入代码的post方法;第三步针对部分页面的验证码,通过手动输
文档评论(0)