创建爬虫
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命令和中间件的更多相关文章

  1. 简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息

    简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息 简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息 系统环境:Fedora22(昨天已安装scrapy环境) 爬取的开始URL:ht ...

  2. Python -- Scrapy 命令行工具(command line tools)

    结合scrapy 官方文档,进行学习,并整理了部分自己学习实践的内容 Scrapy是通过 scrapy 命令行工具进行控制的. 这里我们称之为 “Scrapy tool” 以用来和子命令进行区分. 对 ...

  3. Scrapy命令行工具简介

    Windows 10家庭中文版,Python 3.6.4,virtualenv 16.0.0,Scrapy 1.5.0, 在最初使用Scrapy时,使用编辑器或IDE手动编写模块来创建爬虫(Spide ...

  4. Scrapy——5 下载中间件常用函数、scrapy怎么对接selenium、常用的Setting内置设置有哪些

    Scrapy——5 下载中间件常用的函数 Scrapy怎样对接selenium 常用的setting内置设置 对接selenium实战 (Downloader Middleware)下载中间件常用函数 ...

  5. 做一个简单的scrapy爬虫

    前言: 做一个简单的scrapy爬虫,带大家认识一下创建scrapy的大致流程.我们就抓取扇贝上的单词书,python的高频词汇. 步骤: 一,新建一个工程scrapy_shanbay 二,在工程中中 ...

  6. Scrapy命令行调用传入自定义参数

    在做爬虫服务化时,有这样一个需求:接口用命令行启动爬虫,但是数据入库时要记录此次任务的task_id. 简单说就是,Scrapy命令行启动时要动态传参进去. 解决方案: 在spider中定义一个构造函 ...

  7. 实现简单的cp命令

    在Linux下实现简单的cp命令.这是<APUE>第四章的其中一道练习题. 其实思路很简单,弄清规则就行了.规则1:源文件必须得存在,否则出错:规则2:目的文件若不存在则创建,若存在,则提 ...

  8. 使用Scrapy命令行工具【导出JSON文件】时编码设置

    Windows 10家庭中文版,Python 3.6.4,virtualenv 16.0.0,Scrapy 1.5.0, 使用scrapy命令行工具建立了爬虫项目(startproject),并使用s ...

  9. python爬虫scrapy命令工具学习之篇三

    命令行工具(Command line tools) 全局命令 startproject settings runspider shell fetch view version 项目命令 crawl c ...

随机推荐

  1. MIO、EMIO、AXI_GPIO区别与联系

    https://blog.csdn.net/u014485485/article/details/78141594            点灯实验

  2. Qt 延时处理的几种办法

    有些时候,我们需要程序延时一会儿: 这里提供四种方法: 1.多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread:: ...

  3. Tmux 速成教程:技巧和调整

    本文转自:http://blog.jobbole.com/87584/ 简介 有些开发者经常要使用终端控制台工作,导致最终打开了过多的标签页.如果你也是他们当中的一员,或者你正在实践结对编程,那么我推 ...

  4. 吴裕雄--天生自然python学习笔记:Python3 MySQL 数据库连接 - PyMySQL 驱动

    什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 AP ...

  5. Luogu_2061_[USACO07OPEN]城市的地平线City Horizon

    题目描述 Farmer John has taken his cows on a trip to the city! As the sun sets, the cows gaze at the cit ...

  6. LeetCode43(字符串相乘)

    题目: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", ...

  7. HashMap底层分析

    以下基于 JDK1.7 分析. 如图所示,HashMap 底层是基于数组和链表实现的.其中有两个重要的参数: 容量 负载因子 容量的默认大小是 16,负载因子是 0.75,当 HashMap 的 si ...

  8. Python-rediscluster客户端

    # -*- coding: UTF-8 -*- import redis import sys from rediscluster import StrictRedisCluster #host = ...

  9. OPPO招聘-互联网测试

    邮       箱:ljy@oppo.com 工作地点:深圳

  10. USB描述符(转)

    //============================================================================// 文件名: USBDESC.C// 用 ...