千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 谈谈对scrapy的了解?

谈谈对scrapy的了解?

来源:千锋教育
发布人:wjy
时间: 2022-09-13 17:42:50 1663062170

  一:对scrapy的认识:

  1.scrapy只是一个爬虫的框架

  他把爬虫的需要的共性的东西都默认写下来了,只需要我们具体细化,具体分析补充里面的细节的东西。就像造房子一样,scrapy就充当了一个房屋架构,至于房屋里面的东西 需要我们自己去补充设计。

  2.scrapy的几个部分

  引擎(engine) 爬虫(spider)调度器(scheduler) 下载器(downloader) items文件pipeline(管道文件) settings.py(进行对爬虫修改的东西,比如UserAgent可以注释掉,pipline管道文件可以将其关闭,从而不使用管道文件,robots协议可以改为False)

  3.各个部分的作用

  引擎的作用:处理scrapy这几个部分之间的联系,像人类的大脑,由引擎控制其他各个部分,扮演一个事情通知员的角色,是其他部分之间联系的桥梁。

  调度器:使我们需要爬取的Url做一个个有序排列

  下载器:从云端internet上下载东西

  spider:爬虫 对爬虫的编写,实现爬取数据,是整个爬虫的主干

  items文件:需要爬取的字段写在里面 如:name=scrapy.Field()

  pipeline:管道文件,用来写存储代码的,将爬取的数据存储到本地或者数据库

  ps:以上大概了解下各个部分的职能就好了。

  二.scrpay框架实现爬虫的模拟的简要过程:

  1.首先引擎告诉spider我们需要爬取的数据的网域domain,然后spider给引擎作出回应表示知道了

  2.引擎告诉调度器(scheduler)‘需要你排序啦’,然后spider将域告诉调度器,调度器将域里面每个需要爬取的url做一个排序,然后对引擎说‘’ 我排好序了’’

  3.引擎就对下载器说‘调度器排好序了,你待会需要从云端下载东西了’ 。。。下载器就准备开始以一个个的url里面下载我们写的item文件,下载好后,对引擎说‘’我下载好了“

  4.引擎就开始对spider说“下载器把items文件下好了”,下载器将下载的item文件(响应文件)给spider,spider将得到的items文件(响应文件)给pipline管道进行存储,同时将继续要爬取的URl给调度器,然后调度器,然后周而复始 直到需要爬取的url爬完。

  写spider(爬虫)中需要注意的

  1. name是必要参数,是scrapy爬虫的名字。domain域可选参数,可以没有,start_urls必要的参数,是指开始要爬取的url。

  2. def parse(self,response) 这个函数是就这个名字,scrapy中定了的,是对响应文件做出处理的函数。

  3. yield 生成器函数,生成一个新的函数,再对数据做出进一步处理 如:

对scrapy的了解

 

  ps:yield自己理解的也不是很清楚,见谅。

  4. xpath中的.extract()方法:从一个列表中(脱壳)得到一个新的列表。一心得到标签里面的元素,以列表形式返回

  (1)第一种

  position = response.xpath(’./td[1]/a/text()’)[] 技术类 2 深圳 2018ps:没有extract()的时候,整个标签的东西都拿下来了。返回的是一个selector对象(2)第二种

  position = response.xpath(’./td[1]/a/text()’).extract()[‘22989-腾讯云虚拟化高级研发工程师(深圳) 技术类 2 深圳 2018’]

  (3)第三种

  position=response.xpath‘./td[1]/a/text()’).extract[0]22989-腾讯云虚拟化高级研发工程师(深圳) 技术类 2 深圳 2018

  scrapy写爬虫的步骤:

  1. 新建项目:scrapy startproject <项目名>,创建爬虫 scrpay genspider <爬虫名> “爬取数据的域 如:www.cqggzy.com”

  2. 明确自己需要爬取的数据,写items字段

  3. 编写spider爬虫

  4. 存储:编写管道文件

  注意事项:

  scrapy默认setting.py中管道文件是关闭的,需要打开,请求头在settings中最好将headers也打开,UserAgent最好修改全面一点。robots协议也可以改为False。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT