当前位置:主页 > python教程 > Scrapy框架使用的基本知识

Scrapy框架使用的知识点总结

发布:2019-10-09 22:24:20 125


给寻找编程代码教程的朋友们精选了相关的编程文章,网友幸芳菲根据主题投稿了本篇教程内容,涉及到python、scrapy、scrapy、框架、scrapy、框架使用的基本知识、Scrapy框架使用的基本知识相关内容,已被766网友关注,涉猎到的知识点内容可以在下方电子书获得。

Scrapy框架使用的基本知识

scrapy是一个基于Twisted的异步处理框架,可扩展性很强。优点此处不再一一赘述。

下面介绍一些概念性知识,帮助大家理解scrapy。

一、数据流向

要想熟练掌握这个框架,一定要明白数据的流向是怎么一个过程。总结如下:

1.引擎先打开网站,请求url。

2.引擎通过调度器以Request形式调度url。

3.引擎请求下一个url。

4.调度器将url通过Downloader Middlewares发送给引擎

5.Downloader 生成response,通过Downloader Middlewares发送给引擎

6.引擎接收Response 通过spiderMiddleware发送给spider处理

7.spider处理response

8.引擎将spider处理的item给ItemPipeline 然后将新的Request给调度器。

二、各个结构的作用

DownloderMiddleware

调度器会从队列之中拿出Request发送给Downloader执行下载,这个过程会经过DownloaderMiddleware的处理。

作用的位置有两个:

  • 在调度器调出Request发送给Downloader之前。
  • 下载之后生成Response发送给spider之前。

核心方法有三个:

process_request(request,spider)

Request 到达Downloader之前,就会被调用

参数介绍:

  •          request :Request对象,被处理的Request。
  •          spider:spider对象,上面被处理的Request对应的spider。

返回值:

1.返回None 调用别的process_request()方法,直至将Request执行得到Response才会结束。

2.返回Response对象,低优先级的process_request()process_exception不调用。

3.返回request对象,低优先级的process_request()停止执行,返回新的Request

process_response(request,response,spider)

作用位置:

  • Downloader 执行Request之后,会得到对应的Reponse ,scrapy 引擎会将Response发送给spider进行解析,发送之前调用这个方法对Response进行处理。

返回值的情况:

1.返回Request低优先级的process_respons()不调用。

2.返回response低优先级的process_respons()继续调用。

process_exception(request,exception,spider)

此函数主要是用来处理异常的。

spiderMiddleware

作用位置:

  • Downloader生成Response之后会发送给spider,
  • 在发送之前,会经过spiderMiddleware处理。

核心方法:

process_soider_input(response,spider)

返回值:

1.返回None

 继续处理Response,调用所有的spiderMiddleware,知道spider处理

2.跑出异常

直接调用Request的errback()方法,使用process_spider_output()处理。

process_spider_output(response,result,spider)

当spider处理Response返回结果时,被调用。

process_spider_exception(response,exception,spider)

返回值:none

继续处理response,返回一个可迭代对象,process_spider_output()方法被调用。

process_start_request(start_requests,spider)

spider启动的Request为参数被调用,必须返回request

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接


参考资料

相关文章

  • python使用flask与js进行前后台交互的实现方法详解

    发布:2019-11-03

    今天小编就为大家分享一篇python使用flask与js进行前后台交互的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • 关于python和c语言学哪个好

    发布:2020-03-14

    现在很多外国的初学者都使用python作为编程语言,主要是python见效快,并且可以使用高级端口,c语言是比较低层的,一般不建议学习,学习起来也是比较枯燥。


  • 《python cookbook》评价、笔记

    发布:2019-07-07

    这本书适合有一定Python基础的用户读,告诉你库使用的最佳实践的,刚开始接触库的时候可以参考用。它本身的内容组织就是针对一个问题一个解。个人认为是本好书,在学习使用库时省去了很


  • c语言和python之间有什么区别

    c语言和python之间有什么区别

    发布:2022-06-22

    为网友们分享了关于python的教程,c语言和python之间的主要区别是:Python是一种面向对象的解释型语言,通过缩进来表示语句体,在Python中每一条语句结尾后没有分号;C是一种面向过程的编译型语言,通过{}来表示语句体,C语言


  • Python中反转二维数组的行和列问题

    发布:2023-04-24

    这篇文章主要介绍了Python中反转二维数组的行和列问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • VScode查看python f.write()的文件乱码问题及解决方法

    发布:2023-04-09

    这篇文章主要介绍了VScode查看python f.write()的文件乱码问题及解决方法,本文通过图文并茂的形式给大家分享解决方法,需要的朋友可以参考下


  • Python常用队列全面详细梳理

    发布:2023-03-09

    队列是限制在两端进行插入和操作的线性表,允许存入操作的一段叫“队尾”,删除操作的一端叫“队头”,队列的特点:队列只能在队头和队尾进行数据操作,队列模型具有先进先出的规律


  • python实现简单网页服务器代码实例

    发布:2021-04-15

    这篇文章主要介绍了基于python实现简单网页服务器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下


网友讨论