包含标签 中间件 中的文章

scrapy经验分享-同一项目不同的spider启用不同的配置

在群里经常被问到如何解决同一个爬虫启用不同的piepline的问题,一般的解决通过参数的不同解决这个 def process_item(self, item, spider): self._client.create_index([('msg_id', pymongo.DESCENDING)], background=True) self._client.update_one(filter={'msg_id': item['msg_id']}, update={'$set': dict(item)}, upsert=True) return item 代码中有两个重要的参数item,还有一个spider ,我们打个断点来看看spider 里面的都有些什么 简单点我们可以通过name做逻辑上的判断 if spider.name == 'spider_1': do sth....……

阅读全文

[scrapy]scrapy源码分析–中间件是如何加载的

中间件是scrapy的核心部分,数据的传递,队列的维护,都是靠中间件,所以了解他的生命周期还是很有必要的 https://github.com/scrapy/scrapy/blob/master/scrapy/core/spidermw.py def _add_middleware(self, mw): super(SpiderMiddlewareManager, self)._add_middleware(mw) if hasattr(mw, 'process_spider_input'): self.methods['process_spider_input'].append(mw.process_spider_input) if hasattr(mw, 'process_spider_output'): self.methods['process_spider_output'].insert(0, mw.process_spider_output) if hasattr(mw, 'process_spider_exception'): self.methods['process_spider_exception'].insert(0, mw.process_spider_exception) if hasattr(mw, 'process_start_requests'): self.methods['process_start_requests'].insert(0, mw.process_start_requests) 将中间件的每内置的方法加入到方法链上,注意,这里的数值越小,处理越靠前,下同 https://github.com/scrapy/scrapy/blob/master/scrapy/core/scraper.py 这里就去处理spiderMiddleWare class Scraper(object):……

阅读全文

最近文章

分类

标签

.net Core 2.1 2016 2017 2018 30 aliyun api async bi,微软大数据 blocking bug C# celery charles chrome chrome headless clang conda coroutine cron cuda dag dagobah darknet debug docker docker-compose dotnet core echo elk epoll error error_code etl flask GC go golang google gpu gunicorn http javascript linux lxml mac message queue mongodb nginx node non-blocking nvidia nvidia-docker opencv oss phantomjs pipeline portia proxy pycharm pytest python python-rq python2.7 python3 remote debug rq scrapy select selenium selenium-web-driver spider splash ssis sync TDD Template Tensorflow test tmux torch ubuntu venv video vscode web web framework webapi whistle xpath yield yolo yolov3 中间件 事件 人生 代理 代码 代码生成器 代码风格 优化 使用 分布式 分析 协程 卓老板聊科技 原理 可变类型 可视化 同步 垃圾回收 培训 基础 处理 多线程 大数据 学习 定时 定时任务 容器 工具 工程 底层 建议 异步 录制 心得 心得,python,培训班 总结 感悟 成长 打断点 技巧 推荐 插件 搜索引擎 播放 效率 数据 数据库 数据清洗 整洁 无头浏览器 日志 机器学习 架构 死亡 测试 消息队列 深度学习 渲染 源码 源码分析 点击 爬虫 状态码 生活 癌症 监听 破解验证码 线程 经验 网关 自我管理 自由 虚拟环境 视觉化爬虫 视频 设计 读书 调度 调试 负载均衡 远程调试 错误 阻塞 阿里云 隧道 隧道代理 集群 非阻塞 项目管理 验证码

友情链接

其它