c爬虫抓取网页数据( :网络数据是重要的资产形态之一荐5股)
优采云 发布时间: 2021-12-27 08:01c爬虫抓取网页数据(
:网络数据是重要的资产形态之一荐5股)
[摘要] 网络数据是最重要的资产形式之一。改进数据提取和分析项目是目前该领域的关键研究问题之一。本文基于Scrapy开源技术,参考网络编程等其他相关知识,定制一个扩展能力强的网络爬虫原型程序。选择合适的数据库来捕获和保存数据,并支持多线程并发结构,最大限度地提高操作的有效性。
[关键词]Scrapy; 网络爬虫;框架建设;数据抓取
1990年代,网络爬虫逐渐发展起来,如今已经渗透到人们在互联网上日常生活的方方面面。一个高质量的爬虫应该有准确的爬行目标、高效的爬行过程、快速的运行和有效的后处理。为了让爬虫丰富上述特征,构建良好的结构是重要的基础,这将促进爬虫快速识别访问过的页面,更高效地提取主观需要的结构和内容。Scrapy框架的目的是爬取网站内容,准确提取结构化数据,然后编写一个开源的爬虫应用框架。本文主要探讨其在网络爬虫实现和数据抓取中的应用。
1. 设计整体架构
从宏观上看,爬虫可以细化为以下三个模块:(1)预置规则模块:其作用是预先规划要提取的数据格式,以便程序正常运行,以及有针对性地更改User-AgentCookies登录等监控账号;(2)网页抓取模块:该模块在定义原创
URL时开始抓取网页信息,初步提取并进行基础分析,结合反馈结果的类型,检索对应的回调函数;(3)后续数据处理模块:进一步解析网络爬取模块的结果,判断其合法性,存入数据库,或调整到调度器等待调整和爬行。
2.爬虫实现过程
本文选择“新浪微博”为爬虫目标,“新浪微博”为国内知名社交网站。选择它作为爬取目标,可以帮助我们接触到更多的新知识,感知大数据的发展趋势。
2.1 预设规则预设模块
明确设置爬虫爬取数据格式。具体来说,在item.py文件中,根据需要提取的字段规划对应的类型。比如定义了InformationItem类来爬取用户信息,我们基于Field()方法来解释数据字段(图1)[1].
2.1个网页抓取模块
在Spiders.py中设置这个模块的代码是项目的核心部分。在 Spiders 中自定义 SinaSpider 类。这篇文章详细解释了Spiders类的作用如下:
(1)Name和host特性:定义类的名称,是爬虫的唯一标识。host设置爬虫的爬取区域。
(2)start.urls 特性:它是一个原创
URL 列表,它在初始运行时提供了爬虫的目标。爬虫会以这些页面为起点,有针对性地抓取数据。我们使用用户ID替换偏差和完整性更高的URL,然后使用start_requesets()方法推动用户ID和主机地址的有机融合过程,形成完整度更高的原创
URL。
(3)Scrawl_ID 和finish.ID 是Set 类的变量:Python 中的set 类与其他类型的语言有很高的相似度,属于无序和不重复元素的一类。基本功能是去掉出现过多次的元素,这里我们选择Set类变量来表示爬取的页面和被爬取的页面进行调整,效果非常好[2]。
(4)请求处理部分:SinaSpider自定义了start_requests()函数和四个回调函数,回调函数的作用是处理对用户信息、微博内容、粉丝、感兴趣目标对象的抓取. 当我们在回调函数中设置请求后,Scrapy 会自行调整,传输请求,并在请求完成时调用注册的回调函数。根据解析函数中定义的xpath路径或者获取到的字符,将它们存储在item字典中,最后发送到Pipelines进行后处理。
2.3Post数据处理模块
基于Spider类,我们可以平滑的抓取和抓取目标数据,然后需要分析数据存储问题。本文采用Mysq|database进行存储,有效处理爬取结果与数据库的相互传输问题,是本模块设计阶段需要分析的关键问题之一。在Pipelines.py中可以进行一系列的处理,我们可以把它看成一个数据管道。Pipelines.py 建立了 MysqlPipeline 类,共收录
两个方法。功能是初始化数据表,处理项目,并把它集成到库中。建立基于pymsql开源模块和mysql的交互关系。
打开数据库的本地连接,然后建立“新浪”数据库,然后将相关信息进行制表和存储。
如果 process_item() 函数确定字段数满足要求且不为空,则将其集成到数据库中。执行完上述步骤后,会提示后续数据处理结束。
3. 在分析数据捕获结果中呈现
程序运行后,得到“新浪”数据库。数据库中有四个表。本文主要分析Information表的设置(见表)[3]。
4.结论
本文由 Scrapy 技术支持,形成一个易于制作、易于扩展的聚焦爬虫。爬虫以“新浪微博”用户为目标,抓取用户群体的主要信息。实践表明,利用Scrapy技术开发爬虫具有高效、流程便捷等优点,成功达到了预期的标准要求。
参考:
[1]朱丽颖,吴锦靖.基于自动化测试的定向网络爬虫设计与实现[J]. 微机应用, 2019, 35 (10): 8-10.
[2] 刘辉, 石谦, 基于网络爬虫的新闻网站自动生成系统的设计与实现[J]. 电子技术与软件工程, 2019, 20 (13): 18-19.
[3] 邵晓文.多线程并发网络爬虫的设计与实现[J]. 现代计算机(专业版), 2019, 47 (01): 97-100.
关于作者:
谢建辉(1999-09-25) 性别:男 家乡:广东省梅州市 民族:汉族 *敏*感*词*:本科。