python网络爬虫(第十一章:Scrapy终端与核心组件)

请添加图片描述

1.spider作用:产生URL、对URL发送请求;利用parse()方法进行数据解析
2.引擎将封装的请求对象(URL)给调度器
3.调度器从队列中调用请求对象给引擎【调度器对请求对象进行过滤,之后存入队列中】
4.引擎将从调度器中获取的请求对象给下载器,下载器通过网络进行数据下载【下载的数据均在response中】
5.下载器将response给引擎
6.引擎将response给spider【其实就是将response给spider中的parse()方法,进行数据解析】
7.将解析后的数据封装到item中,并将item给引擎
8.引擎将item给管道,管道接收item,进行持久化存储

引擎的作用:

1.数据流处理
2.触发事件【完成对象实例化、方法、属性的调用】如:parse()方法就是由引擎调用

引擎如何保证合适触发事件?

引擎根据接收的流数据进行判断,根据不同的数据流比较判断调用何种方法。

五大核心组件

引擎(Scrapy):用来处理整个系统的数据流、触发事件(框架的核心)
调度器(Scheduler):用来接收引擎发送的请求,压入队列中,并在引擎再次请求的时候返回
下载器(Downloader):用来下载网页内容,并将网页内容返回给spider(Scrapy下载器是建立在twisted高效的异步模型上)
爬虫(Spider):用于从特定的网页中提取自己需要的信息,即所谓的实体(Item),用于也可以从中提取出链接,让Scrapy继续抓取下一个页面
项目管道(Pipeline):负责处理爬虫从网特种抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将给发送到项目管道,并经过几个特定的次序处理数据。
2025-04-02 17:40:51 [scrapy.utils.log] INFO: Scrapy 2.12.0 started (bot: poemScrapy) 2025-04-02 17:40:51 [scrapy.utils.log] INFO: Versions: lxml 5.3.1.0, libxml2 2.11.7, cssselect 1.3.0, parsel 1.10.0, w3lib 2.3.1, Twisted 24.11.0, Python 3.12.6 (tags/v3.12.6:a4a2d2b, Sep 6 2024, 20:11:23) [MSC v.1940 64 bit (AMD64)], pyOpenSSL 25.0.0 (OpenSSL 3.4.1 11 Feb 2025), cryptography 44.0.2, Platform Windows-11-10.0.22631-SP0 Traceback (most recent call last): File "C:\Users\林文佳\pythonProject4\.venv\Lib\site-packages\scrapy\spiderloader.py", line 89, in load return self._spiders[spider_name] ~~~~~~~~~~~~~^^^^^^^^^^^^^ KeyError: 'poemSpider' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\林文佳\pythonProject4\poemScrapy\run.py", line 2, in <module> cmdline.execute("scrapy crawl poemSpider".split()) File "C:\Users\林文佳\pythonProject4\.venv\Lib\site-packages\scrapy\cmdline.py", line 188, in execute _run_print_help(parser, _run_command, cmd, args, opts) File "C:\Users\林文佳\pythonProject4\.venv\Lib\site-packages\scrapy\cmdline.py", line 141, in _run_print_help func(*a, **kw) File "C:\Users\林文佳\pythonProject4\.venv\Lib\site-packages\scrapy\cmdline.py", line 196, in _run_command cmd.run(args, opts) File "C:\Users\林文佳\pythonProject4\.venv\Lib\site-packages\scrapy\commands\crawl.py", line 33, in run crawl_defer = self.crawler_process.crawl(spname, **opts.spargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\林文佳\pythonProject4\.venv\Lib\site-packages\scrapy\crawler.py", line 332, in crawl crawler = self.create_crawler(crawler_or_spidercls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\林文佳\pythonProject4\.venv\Lib\site-packages\scrapy\crawler.py", line 368, in create_crawler return self._create_crawler(crawler_or_spidercls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\林文佳\
最新发布
04-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值