zoukankan      html  css  js  c++  java
  • 简单的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)
    如果存在该函数,则调用该函数创建中间件的实例。
    如果要写这个函数,一定要返回一个中间件的对象。
    这个函数作用:传递信号或者读取配置

     

     

     

  • 相关阅读:
    RHEL6安装JDK7
    Linux 下安装配置 JDK7(2)
    Linux安装Tomcat7
    useradd命令
    Linux下搭建tomcat集群全记录
    (转)通向架构师的道路(第五天)…
    Apache2.2安装图解
    (转)apache2.2.x+tomcat7.0.x集群+…
    web性能并发测试工具(转)
    Hibernate注解详细介绍
  • 原文地址:https://www.cnblogs.com/kenD/p/12243841.html
Copyright © 2011-2022 走看看