middlewares中自定义的类中的方法命名以及dont_filter参数问题
middlewares中自定义的类的方法名称比如process_reques这些名称是固定的吗?还是可以随意命名(测试随意命名后好像不行呢),以及dont_filter参数问题,dont_filter=True 告诉爬虫不参与去重这样不是会降低爬虫效率,该项目中在进行详情页请求时为什么会出现重复的url。
9
收起
正在回答
1回答
同学,你好!
1、方法名是固定的,例:process_request:每个交给下载器的request对象都会经过该方法,并期望返回response 。
process_response:当下载器完成请求,返回响应给引擎的时候调用
2、不去重可能会降低爬虫效率,也会避免若请求重复爬取不到数据的情况 。
3、重复的请求并不一定是重复的url,可能是多次请求一个url。可能会出现下载失败的情况,scrapy会重新请求,从而产生了重复的请求
祝学习愉快!
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星