纯python scrapy爬虫框架

要想使用scrapy框架,首先要理解运行的原理

Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等

Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。

Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理,

Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器),

Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.

Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件

Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

爬虫分为普通爬虫和通用爬虫

普通爬虫的使用

1.新建项目

···scrapy startproject myspider```

2.创建爬虫文件

···scrapy genspider name yuming.com···
打开文件之后对setting进行设置

(1)ROBOTSTXT_OBEY = False
(2)COOKIES_ENABLED = False
(3)在默认请求头里面进行user_agent等一系列的设置
(4)打开管道的借口
(5)DOWNLOAD_DELAY = 3 设置下载延时
3.####我们要找到目标url
例如爬取一个网站https://www.baidu.com/
(1)进入页面找到目标url
https://www.baidu.com/?page=1
(2)为了爬取所有页面,需要爬取当前页面所有的分页url yield给调度器
yield scrapy.Ruquest(url='分页url',)
(2)在item.py里面编辑需要爬取的字段名称
(3)进入爬虫文件,在解析函数下进行内容的爬取
(4)把爬取到的数据yield item交给管道
(5)在pip文件里进行数据持久化的存储

通用爬虫

适合爬取一些分页有规律的网站与普通爬虫大体相同
(1)通用爬虫创建项目:
···scrapy genspider -t crawl 爬虫文件 域名···
(2)创建规则
···rules = (
Rule(LinkExtractor(allow=r'.*?p=\d+',restrict_xpaths=('//div[@class="pages"]')), callback='parse_item', follow=True,),
)···
(3)与普通爬虫解析的差别
需要重写···def parse_start_url(self, response):
[]···
(4)不能重写parse方法,这是系统内部的需求。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对于规模小、爬取数据量小、对爬取速度不敏感的爬虫程序, 使用 Requests 能轻松搞定。这些爬虫程序主要功能是...
    猴哥爱读书阅读 3,079评论 0 31
  • 我们不得不承认,这个世界有很多人,他们傻的程度,连一条流浪狗都不如。流浪狗还知道,什么样的垃圾桶附近会经常有吃的东...
    半朽阅读 1,044评论 12 35
  • 远山黛月 蕴含冰心玉色一片 江花鞍马 桥堍扁舟逐梦 潮落一瞬间 秋叶坠阶平 风扣窗棂月心飘零 烛花投影觅知音 打捞...
    鹿还是路阅读 257评论 0 2
  • 没有记录,就没有发生!没有反思的人生不值得过! ‍■第二个90天践行目标: 1.【健康】早睡早起,每天冥想一次 2...
    Wendy雯迪阅读 222评论 0 1
  • 什么鬼
    轻狂少年w阅读 94评论 0 0

友情链接更多精彩内容