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

最新文章

  1. maven/gradle 打包后自动上传到nexus仓库
  2. meta标签和作用
  3. 如何编译MongoDB?
  4. jsp实现一条横线中间有字的样式
  5. EventUtil 根据IE自动适配事件
  6. 【GPU编解码】GPU硬编码
  7. SQL2005中的事务与锁定(二)- 转载
  8. 将PHP作为Shell脚本语言使用
  9. HTML css面试题
  10. 今天碰到的angular 中的一个小坑
  11. 一旦rhel5.8造成只读文件系统ORA-00354: corrupt redo log block header
  12. Ionic android 底部tabs
  13. HTML的第一课
  14. C++windows内核编程笔记day09_day10,对话框和窗体基本控件等的使用
  15. BZOJ第1页养成计划
  16. VueJs(5)---V-bind指令
  17. HttpSession原理及Session冲突
  18. [转]常见的JavaScript内存泄露
  19. Mac Anaconda 简单介绍 -- 环境管理
  20. Code Chef MINPOLY(计算几何+dp)

热门文章

  1. python-django框架-电商项目-商品模块开发_20191124
  2. java枚举与常量类的区别
  3. Java开发面试常见问题合集
  4. group compare vs pair compare
  5. 公式化学习urllib(第一卷)
  6. linux在线书籍
  7. Spring返回jsp页面
  8. Ubuntu18.04安装OpenStack
  9. Go的sync
  10. Laravel Study(使用 Laravel )