码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • scrapy--豆瓣top250--中间件


    job.py

    1. import scrapy
    2. from Douban.items import DoubanItem
    3. class JobSpider(scrapy.Spider):
    4. name = "job"
    5. allowed_domains = ["douban.com"]
    6. start_urls = ["https://movie.douban.com/top250"]
    7. def parse(self, response):
    8. el_list=response.xpath('//*[@class="info"]')
    9. # print(len(el_list))
    10. for el in el_list:
    11. item=DoubanItem()
    12. item['name']=el.xpath('./div[1]/a/span[1]').extract_first()
    13. yield item
    14. # item['info']
    15. url=response.xpath('//span[@class="next"]/a/@href').extract_first()
    16. if url:
    17. url=response.urljoin(url)
    18. yield scrapy.Request(
    19. url=url
    20. )

    中间件在Scrapy中的作用主要有以下几个方面:

    1. 请求预处理:中间件可以对每个请求进行预处理,例如添加自定义的请求头、cookies、代理等信息,以及对请求进行过滤或修改。
    2. 响应处理:中间件可以对每个响应进行处理,例如处理页面重定向、处理错误、修改响应数据等。
    3. 爬虫过滤:中间件可以过滤掉指定的请求或响应,例如对特定URL进行过滤,或者根据条件过滤掉不符合要求的请求或响应。
    4. 错误处理:中间件可以捕获并处理请求或响应的错误,例如超时、连接错误等。
    5. 扩展功能:中间件可以用于添加其他扩展功能,例如自动登录、数据统计、缓存等。

    在Scrapy中,你可以自定义中间件并将其添加到项目的中间件列表中。Scrapy会按照顺序依次调用每个中间件的相应方法,你可以在方法中实现你的自定义逻辑。常用的中间件方法包括:

    • process_request(request, spider):处理请求前的预处理逻辑。
    • process_response(request, response, spider):处理响应前的预处理逻辑。
    • process_exception(request, exception, spider):处理请求或响应过程中的异常。
    • spider_opened(spider):当爬虫开启时调用的方法。
    • spider_closed(spider):当爬虫关闭时调用的方法。
  • 相关阅读:
    一分钟学一个 Linux 命令 - tar
    代码随想录算法训练营Day62|冗余连接、冗余连接II
    机器学习基础篇(3)之图像运算和变换
    每日简报 8月31日简报新鲜事 每天一分钟 了解新鲜事
    Hive常用DDL操作
    JVM 彻底搞懂什么是老年代空间分配担保机制
    Png怎么转jpg?这种方法教你如何快速转换
    【洛谷 P1029】[NOIP2001 普及组] 最大公约数和最小公倍数问题 题解(辗转相除法)
    SpringBoot入门
    七天学会C语言-第六天(指针)
  • 原文地址:https://blog.csdn.net/weixin_74711824/article/details/133248686
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号