简单的scrapy命令和中间件
创建爬虫
scrapy genspider 名字 xxx.com
运行爬虫
运行名为usnews的爬虫
scrapy crawl usnews
运行爬虫文件
scrapy runspider quote_spider.py
保存到json文件里
scrapy runspider quote_spider.py -o quotes.json
保存成csv文件
scrapy runspider quote_spider.py -o quotes.csv -t csv
调试爬虫
进入scrapy控制台,使用的是项目环境
scrapy shell
带一个url,将自动请求这个url,并在请求成功后进入控制台
scrapy shell http://xxx.com
进入到控制台以后可以使用一下函数(常用命令)
fetch(): 请求url或者Response对象
注意:请求成功以后会自动将当前作用域内的request和response对象重新赋值
view(): 用浏览器打开response对象的网页
shelp(): 打印出帮助信息
spider(): 相应的Spider类的实例
settings: 保存所有配置信息的Settings对象
crawler: 当前Crawler对象
中间件
process_request
在response对象传往downloader的过程中被调用。当返回不同类型的值的时候,行为也不一样。
返回值:None
行为:一切正常,继续执行其他中间件链
返回值:Response
行为:停止调用其他process_request和process_exception函数,也不再继续下载该请求,然后执行调用process_response的流程
返回值:Request
行为:不再继续调用其他process_request函数,交给调度器重新安排下载
返回值:IgnoreRequest
行为:process_exception函数被调用,如果没有此方法,则request.errback会被调用,如果errback也没有,则此异常会被忽略,甚至连日志都没有
process_response
在将下载结果返回给engine过程中
返回值:Response
行为:继续调用其他中间件的process_response
返回值:Request
行为:不再继续调用其他process_request函数,交给调度器重新安排下载
返回值:IgnoreRequest
行为:request.errback会被调用,如果errback也没有,则此异常会被忽略,甚至连日志都没有
process_exception
在下载过程中出现异常(DNS,timeout,网络连接不上等异常),或者在process_request中抛出IgnoreRequest异常的时候调用
返回值:None
行为:
返回值:Response
行为:继续调用其他中间件的process_response
返回值:Request
行为:不再继续调用其他process_request函数,交给调度器重新安排下载
from_crawler(cls, crawler)
如果存在该函数,则调用该函数创建中间件的实例。
如果要写这个函数,一定要返回一个中间件的对象。
这个函数作用:传递信号或者读取配置
简单的scrapy命令和中间件的更多相关文章
- 简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息
简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息 简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息 系统环境:Fedora22(昨天已安装scrapy环境) 爬取的开始URL:ht ...
- Python -- Scrapy 命令行工具(command line tools)
结合scrapy 官方文档,进行学习,并整理了部分自己学习实践的内容 Scrapy是通过 scrapy 命令行工具进行控制的. 这里我们称之为 “Scrapy tool” 以用来和子命令进行区分. 对 ...
- Scrapy命令行工具简介
Windows 10家庭中文版,Python 3.6.4,virtualenv 16.0.0,Scrapy 1.5.0, 在最初使用Scrapy时,使用编辑器或IDE手动编写模块来创建爬虫(Spide ...
- Scrapy——5 下载中间件常用函数、scrapy怎么对接selenium、常用的Setting内置设置有哪些
Scrapy——5 下载中间件常用的函数 Scrapy怎样对接selenium 常用的setting内置设置 对接selenium实战 (Downloader Middleware)下载中间件常用函数 ...
- 做一个简单的scrapy爬虫
前言: 做一个简单的scrapy爬虫,带大家认识一下创建scrapy的大致流程.我们就抓取扇贝上的单词书,python的高频词汇. 步骤: 一,新建一个工程scrapy_shanbay 二,在工程中中 ...
- Scrapy命令行调用传入自定义参数
在做爬虫服务化时,有这样一个需求:接口用命令行启动爬虫,但是数据入库时要记录此次任务的task_id. 简单说就是,Scrapy命令行启动时要动态传参进去. 解决方案: 在spider中定义一个构造函 ...
- 实现简单的cp命令
在Linux下实现简单的cp命令.这是<APUE>第四章的其中一道练习题. 其实思路很简单,弄清规则就行了.规则1:源文件必须得存在,否则出错:规则2:目的文件若不存在则创建,若存在,则提 ...
- 使用Scrapy命令行工具【导出JSON文件】时编码设置
Windows 10家庭中文版,Python 3.6.4,virtualenv 16.0.0,Scrapy 1.5.0, 使用scrapy命令行工具建立了爬虫项目(startproject),并使用s ...
- python爬虫scrapy命令工具学习之篇三
命令行工具(Command line tools) 全局命令 startproject settings runspider shell fetch view version 项目命令 crawl c ...
随机推荐
- perf4j+spring+aop 配置 注解方式
今天将perf4j基于spring aop方式进入了接入,接入方法还是比较简单.具体配置如下: logback.xml <!--perf4j配置--> <appender name= ...
- JStorm:任务调度
前一篇文章 JStorm:概念与编程模型 介绍了JStorm的基本概念以及编程模型方面的知识,本篇主要介绍自己对JStorm的任务调度方面的认识,主要从三个方面介绍: 调度角色 调度方法 自定义调度 ...
- C#获取代码执行时间(精确到毫秒)
private void Time(int i) { Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(i); sw.Stop(); C ...
- mysql表关系
表与表之间的关系 """ 把所有数据都存放于一张表的弊端 1.组织结构不清晰 2.浪费硬盘空间 3.扩展性极差 """ # 上述的弊端产生原 ...
- grep显示前后几行信息
显示foo及前5行 1 grep -B 5 foo file 显示foo及后5行 1 大专栏 grep显示前后几行信息ode"> grep -A 5 foo file 显示 file ...
- wxpython(2)--按钮,位图按钮,滑动块,微调控制器
本文介绍按钮,位图按钮,滑动块,微调控制器**.. 按钮 基本按钮 创建一个按钮,绑定点击事件,点击后修改Label 123456789101112131415161718 import wx cla ...
- C++走向远洋——68(十六周、文件)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- 基于activity的强大java工作流引擎,可视化开发工作流
我们先来看看工作流引擎和Activity? 工作流引擎 所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色.分工和条件的不同决定信息传递路由.内容等级等 ...
- 如何使用@import导入实现了ImportBeanDefinitionRegistrar接口的类?
如何使用@import导入实现了ImportBeanDefinitionRegistrar接口的类? 在程序开发的时候,我们经常会遇见一个名词“接口”这也是我们做开发人员工作中必不可少的一个技术, ...
- XXE学习(一)——XML基础
XXE学习(一)——xml基础 一.XML简介 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据 ...