Scrapy框架的命令行详解

请给作者点赞 --> 原文链接

这篇文章主要是对的scrapy命令行使用的一个介绍

创建爬虫项目

scrapy startproject 项目名
例子如下:

  1. localhost:spider zhaofan$ scrapy startproject test1
  2. New Scrapy project 'test1', using template directory '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scrapy/templates/project', created in:
  3. /Users/zhaofan/Documents/python_project/spider/test1
  4.  
  5. You can start your first spider with:
  6. cd test1
  7. scrapy genspider example example.com
  8. localhost:spider zhaofan$

这个时候爬虫的目录结构就已经创建完成了,目录结构如下:

  1. |____scrapy.cfg
  2. |____test1
  3. | |______init__.py
  4. | |____items.py
  5. | |____middlewares.py
  6. | |____pipelines.py
  7. | |____settings.py
  8. | |____spiders
  9. | | |______init__.py

接着我们按照提示可以生成一个spider,这里以百度作为例子,生成spider的命令格式为;
scrapy genspider 爬虫名字 爬虫的网址

  1. localhost:test1 zhaofan$ scrapy genspider baiduSpider baidu.com
  2. Created spider 'baiduSpider' using template 'basic' in module:
  3. test1.spiders.baiduSpider
  4. localhost:test1 zhaofan$

关于命令详细使用

命令的使用范围

这里的命令分为全局的命令和项目的命令,全局的命令表示可以在任何地方使用,而项目的命令只能在项目目录下使用

全局的命令有:

startproject
genspider
settings
runspider
shell
fetch
view
version

项目命令有:

crawl
check
list
edit
parse
bench

startproject

这个命令没什么过多的用法,就是在创建爬虫项目的时候用

  1. # 创建项目
  2. scrapy startprojects myproject

genspider

用于生成爬虫,这里scrapy提供给我们不同的几种模板生成spider,默认用的是basic,我们可以通过命令查看所有的模板

  1. # 列出所有的模版
  2. scrapy genspider -l
  1. localhost:test1 zhaofan$ scrapy genspider -l
  2. Available templates:
  3. basic
  4. crawl
  5. csvfeed
  6. xmlfeed
  7. localhost:test1 zhaofan$

当我们创建的时候可以指定模板,不指定默认用的basic,如果想要指定模板则通过
scrapy genspider -t 模板名字

  1. # 生成一个项目模版
  2. scrapy genspider -t crawl zhihu wwww.zhihu.com
  1. localhost:test1 zhaofan$ scrapy genspider -t crawl zhihuspider zhihu.com
  2. Created spider 'zhihuspider' using template 'crawl' in module:
  3. test1.spiders.zhihuspider
  4. localhost:test1 zhaofan$

crawl

这个是用去启动spider爬虫格式为:
scrapy crawl 爬虫名字

  1. # 运行spider
  2. scrapy crawl spidername

这里需要注意这里的爬虫名字和通过scrapy genspider 生成爬虫的名字是一致的

check

用于检查代码是否有错误,scrapy check

  1. # check 用来检查代码是否有错误
  2. scrapy check  

list

scrapy list列出所有可用的爬虫

  1. # list 返回项目里面所有spider的名称
  2. scrapy list

edit

edit 在命令行下编辑spider ### 不建议运行
scrapy edit myspider

fetch

scrapy fetch url地址 
该命令会通过scrapy downloader 讲网页的源代码下载下来并显示出来

这里有一些参数:
--nolog 不打印日志
--headers 打印响应头信息
--no-redirect 不做跳转

  1. # fetch 输出日志及网页源代码
  2. scrapy fetch http://www.baidu.com
  3.  
  4. # fetch --nolog 只输出源代码
  5. scrapy fetch --nolog http://www.baidu.com
  6.  
  7. # fetch --nolog --headers 输出响应头
  8. scrapy fetch --nolog --headers http://www.baidu.com
  9.  
  10. # --nolog --no--redirect 禁止重定向
  11. scrapy fetch --nolog --no--redirect http://www.baidu.com

view

scrapy view url地址
该命令会讲网页document内容下载下来,并且在浏览器显示出来

  1. # view 从浏览器中打开网页
  2. scrapy view http://www.taobao.com

因为现在很多网站的数据都是通过ajax请求来加载的,这个时候直接通过requests请求是无法获取我们想要的数据,所以这个view命令可以帮助我们很好的判断

shell

这是一个命令行交互模式
通过scrapy shell url地址进入交互模式

  1. # shell 命令行交互模式
  2. csrapy shell http://www.baidu.com

这里我么可以通过css选择器以及xpath选择器获取我们想要的内容(xpath以及css选择的用法会在下个文章中详细说明),例如我们通过scrapy shell http://www.baidu.com

这里最后给我们返回一个response,这里的response就和我们通requests请求网页获取的数据是相同的。
view(response)会直接在浏览器显示结果
response.text 获取网页的文本
下图是css选择器的一个简单用法

settings

获取当前的配置信息
通过scrapy settings -h可以获取这个命令的所有帮助信息

  1. # 获取帮助信息
  2. scrapy settings -h
  1. localhost:jobboleSpider zhaofan$ scrapy settings -h
  2. Usage
  3. =====
  4. scrapy settings [options]
  5.  
  6. Get settings values
  7.  
  8. Options
  9. =======
  10. --help, -h show this help message and exit
  11. --get=SETTING print raw setting value
  12. --getbool=SETTING print setting value, interpreted as a boolean
  13. --getint=SETTING print setting value, interpreted as an integer
  14. --getfloat=SETTING print setting value, interpreted as a float
  15. --getlist=SETTING print setting value, interpreted as a list
  16.  
  17. Global Options
  18. --------------
  19. --logfile=FILE log file. if omitted stderr will be used
  20. --loglevel=LEVEL, -L LEVEL
  21. log level (default: DEBUG)
  22. --nolog disable logging completely
  23. --profile=FILE write python cProfile stats to FILE
  24. --pidfile=FILE write process ID to FILE
  25. --set=NAME=VALUE, -s NAME=VALUE
  26. set/override setting (may be repeated)
  27. --pdb enable pdb on failure

拿一个例子进行简单的演示:(这里是我的这个项目的settings配置文件中配置了数据库的相关信息,可以通过这种方式获取,如果没有获取的则为None)

  1. localhost:jobboleSpider zhaofan$ scrapy settings --get=MYSQL_HOST
  2. 192.168.1.18
  3. localhost:jobboleSpider zhaofan$

runspider

这个和通过crawl启动爬虫不同,这里是scrapy runspider 爬虫文件名称
所有的爬虫文件都是在项目目录下的spiders文件夹中

version

查看版本信息,并查看依赖库的信息

  1. localhost:~ zhaofan$ scrapy version
  2. Scrapy 1.3.2
  3. localhost:~ zhaofan$ scrapy version -v
  4. Scrapy : 1.3.2
  5. lxml : 3.7.3.0
  6. libxml2 : 2.9.4
  7. cssselect : 1.0.1
  8. parsel : 1.1.0
  9. w3lib : 1.17.0
  10. Twisted : 17.1.0
  11. Python : 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) - [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
  12. pyOpenSSL : 16.2.0 (OpenSSL 1.0.2k 26 Jan 2017)
  13. Platform : Darwin-16.6.0-x86_64-i386-64bit
 

Scrapy框架的命令行详解【转】的更多相关文章

  1. Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解

    这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: localhost:spider zhaofan$ scrapy start ...

  2. Python之爬虫(十五) Scrapy框架的命令行详解

    这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: localhost:spider zhaofan$ scrapy start ...

  3. 3-----Scrapy框架的命令行详解

    创建爬虫项目 scrapy startproject 项目名 例子如下: E:\crawler>scrapy startproject test1 New Scrapy project 'tes ...

  4. [转载]OpenSSL中文手册之命令行详解(未完待续)

     声明:OpenSSL之命令行详解是根据卢队长发布在https://blog.csdn.net/as3luyuan123/article/details/16105475的系列文章整理修改而成,我自己 ...

  5. scrapy框架的命令行解释

    scrapy框架的命令解释 创建爬虫项目 scrapy startproject 项目名例子如下: scrapy startproject test1 这个时候爬虫的目录结构就已经创建完成了,目录结构 ...

  6. 7Z命令行详解

    7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...

  7. 7-zip命令行详解

    一.简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压软件. 主要特征: # 全新的LZMA算法加大了7z格式的压缩比 # 支持格式: * 压缩 / 解压缩:7z, XZ ...

  8. 爬虫(十):scrapy命令行详解

    建爬虫项目 scrapy startproject 项目名例子如下: localhost:spider zhaofan$ scrapy startproject test1 New Scrapy pr ...

  9. gcc命令行详解

    介绍] ----------------------------------------- 常见用法: GCC 选项 GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但 ...

随机推荐

  1. window mysql5.7 zip 安装

    第一步 ? 1 2 3 4 5 6 7 8 9 10 11 12 my-default.ini 添加配置: #绑定IPv4和3306端 bind-address = 127.0.0.1 port = ...

  2. js之BOM和DOM

      今天我们来学习js中的一些基础的操作. 一.BOM对象 BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相 ...

  3. 从零开始的全栈工程师——js篇2.13(字符串与数组的方法)

    基类Object的子类有 Function  Array  Number  Boolean  String  Date  Math  RegExp 函数 数组 数字 布尔 字符串 日期 算数 正则 都 ...

  4. C++ 强制类型转换(转载)

    转载自:http://www.weixueyuan.net/view/6329.html 在C++语言中新增了四个关键字static_cast.const_cast.reinterpret_cast和 ...

  5. 配置Ubuntu DNS

    首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询.要访问Ubuntu DNS 服务器来进行查询,需要设置/etc/resolv.conf文件 ...

  6. 介绍一款渗透神器——Burp Suite

    Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代 ...

  7. mysqlbinlog 查看执行的sql (row模式)

    记录一下:当bin-log的模式设置为 row时 不仅日志长得快 并且查看执行的sql时 也稍微麻烦一点:1.干扰语句多:2生成sql的编码需要解码. binlog_format=row 直接mysq ...

  8. Vultr VPS建站攻略 – 一键安装LNMP无面板高性能WEB环境

    在"Vultr VPS建站攻略 - 一键安装宝塔面板架设LNMP/LAMP Web环境"文章中,VULTR中文网分享到我们常用的可视化面板宝塔面板安装在VULTR VPS主机中建站 ...

  9. 洛谷 P1077 摆花

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

  10. hihocoder第三十六周 二分查找

    题目链接:http://hihocoder.com/contest/hiho36/problem/1 , 一个比较简单的二分. 算法: 由于数据量比较大,O(nlogn)无法通过,所以不能先排序再查找 ...