从python基础到爬虫的书籍有哪些值得推荐?
Scrapy简介
Scrapy是一个为抓取网站数据和提取结构化数据而编写的应用框架。它可用于一系列程序,包括数据挖掘、信息处理或存储历史数据。
使用流程创建一个Scrapy项目,定义提取项编写,抓取网站的蜘蛛,提取项编写项管道存储提取项(即数据)。
下图显示了Scrapy的架构,包括系统中组件和数据流的概述(绿色箭头所示)。下面是对每个组件的简要介绍,并给出了详细信息的链接。数据流描述如下。
粘贴_图像. png
包裹
Scrapy Engine引擎负责控制系统所有组件中的数据流,并在相应的动作发生时触发事件。详情参见下面的数据流部分。调度程序调度程序接受来自引擎的请求,并对它们进行排队,以便在引擎稍后请求它们时可以将它们提供给引擎。下载器下载器负责获取页面数据并提供给引擎,再提供给蜘蛛。SpidersSpider是Scrapy用户编写的一个类,用于分析响应并提取物品(即获得的物品)或URL以进行额外的跟进。每个蜘蛛负责处理一个特定的(或一些)网站。更多细节见蜘蛛。Item PipelineItem Pipeline负责处理spider提取的项目。典型的处理包括清理、验证和持久化(例如访问数据库)。有关更多详细信息,请参见项目管道。下载器中间件下载器中间件是引擎和下载器之间的一个特定钩子,它处理下载器传递给引擎的响应。它提供了一个简单的机制,通过插入自定义代码来扩展Scrapy函数。更多细节参见下载器中间件。蜘蛛中间件(Spider Middleware)蜘蛛中间件是引擎和蜘蛛之间的一个特定钩子,它处理蜘蛛的输入(响应)和输出(条目和请求)。它提供了一个简单的机制,通过插入自定义代码来扩展Scrapy函数。更多细节参见Spider中间件。
三:案例分析
1.从网站首页输入最新的涂鸦表情后,网址中等,要添加内容。XPath ('//img/@ data-original ')。extract () [i]返回一个列表(即系统自带的列表),其中包含一些提取的内容,[i] Filename =' doutu \ {} '。format(item[' name '])+item['img_url'][-4:]用于获取图片的名称,最后一项[' img _ URL '][-4:]是获取图片地址的最后四位数字,以保证不同的文件格式使用各自的后缀。最后一点是,如果xpath匹配不正确,就会出现(referer: None)。
4.配置settings.py如果想抓取更快,就把CONCURRENT_REQUESTS设置大一点,DOWNLOAD_DELAY设置小一点。或者0。#-*-编码:utf-8-*-bot _ name = ' scrapy doutu ' spider _ modules =[' scrapy doutu。spiders ']new spider _ module = ' scrapy doutu。蜘蛛的下载器_中间件= {
5.在设置中用UA设置配置middleware.py,可以在下载中随机选择UA,有一定的防ban效果。在原代码的基础上增加以下代码。这里的user_agent_list可以添加更多。import random from scrapy . downloadermiddleware . user agent import UserAgentMiddleware class RotateUserAgentMiddleware(UserAgentMiddleware):
6.到目前为止,代码已经完成。那我们开始吧!
刺儿头爬斗图
之后你可以看到用户代理在下载的时候被修改了。
五:总结
学习使用Scrapy会遇到很多坑,但是强大的搜索系统不会让我感到孤独。所以感觉Scrapy还是很厉害很有趣的,以后会继续学习Scrapy的其他方面。
Github地址加组
如果你在学习过程中遇到任何问题,或者想获取学习资源,欢迎加入学习交流群。
,我们一起学Python吧!