windows下载安装scrapy

进入cmd模式,输入:pip install Scrapy
也可以使用:pip install scrapy==1.1.0rc3 来安装对应版本的scrapy

常见问题

pip版本需要升级

python -m pip install --upgrade pip

创建一个scrapy 爬虫

首先要使用scrapy 来创建一个爬虫项目,在cmd窗口进入用来存储新建爬虫项目的文件夹,比如我们要在“D:\python”目录中创建一个爬虫项目文件:
首先在cmd窗口进入该目录:执行d: 进入D:盘
执行cd python 进入python目录
执行:

scrapy startproject 项目名

来创建一个scrapy爬虫项目

然后cd 项目名 进入该爬虫项目文件中

然后使用如下命令创建scrapy爬虫

scrapy genspider 爬虫名称 "域名"   # 注意:爬虫名字不能和项目名称一致。
例如:创建爬取糗事百科的爬虫scrapy genspider qsbk_spider "qiushibaike.com" # www不用写

接下来我们用这些命令来创建一个scrapy爬虫
爬取的网站是“https://www.gushiwen.org/”
我的目录是:F:\scrapy

打开cmd
F:      # 进入F:盘
cd scrapy         # 进入scrapy目录
scrapy startproject gushi
cd gushi
scrapy genspider gushi_1 "gushiwen.org"     # 创建名称为gushi_1的爬虫


此时 F:\scrapy目录下就会出现创建好的 gushi文件夹

使用pycharm打开如下图所示:

gushi 文件夹下有guoshi 子文件夹和scrapy.cfg 文件

guoshi 子文件夹:项目核心目录
scrapy.cfg 文件:是爬虫项目的配置文件

打开guoshi 子文件夹,如下图所示:

在spiders文件夹下

__init__.py :是项目的初始化文件,包含项目的初始化信息
items.py : 是爬虫项目的数据容器文件,主要来定义我们所要获取的数据。
middlewares.py : 用来存放各种中间件的文件
pipelines.py : 是爬虫项目的管道文件,主要用来对items里面定义的数据进行进一步的加工
settings.py : 是爬虫项目的设置文件

scrapy常用命令

使用scrapy startproject 来创建爬虫项目时,可以加上一些参数进行控制:

scrapy startproject -h     # 调出帮助信息

其中 --logfile=FILE 参数主要用来指定日志文件,其中
的FILE为指定的日志文件的路径地址。可以将日志文件存储到当前目录的上一层目录下:
scrapy startproject --logfile="../logf.log" mypjt1也可以存储到当前目录下
scrapy startproject --logfile="./logf.log" mypjt1
--loglevel=LEVEL,-L LEVEL
该参数主要用来控制日志信息的等级,默认为DEBUG模式
即会将对应的调试信息都输出,

日志等级常见值

等级名 含义
CRITICAL 发生最严重的错误
ERROR 发生了必须立即处理的错误
WARNING 出现了一些警告信息,即存在潜在错误
INFO 输出一些提示信息
DEBUG 输出一些调试信息,常用于开发阶段

我们将日志等级设置为WARNING

scrapy startproject --loglevel=WARNING mypjt3

可以通过 --nolog 参数来设置不输出日志信息
创建一个爬虫项目,并且不输出日志信息

scrapy startproject --nolog mypjt4

如果想要删除爬虫项目,就直接删除爬虫的项目文件夹即可

scrapy常用命令

Scrapy中命令分为两种:

  • 全局命令:不需要依靠Scrapy项目就可以在全局中直接运行
  • 项目命令:必须在scrapy项目中才可以运行

全局命令:

在不进入scrapy爬虫项目所在目录的情况下运行scrapy -h
在commands下会出现所有的全局命令

注意:其中 bench 命令比较特殊,归为项目命令

(1)fetch命令
fetch命令主要用来显示爬虫爬取的过程

用法:

scrapy fetch 网址例如:
scrapy fetch http://www.baidu.com
显示爬取百度首页的过程

如果在scrapy项目目录之外使用该命令,则会调用scrapy默认的爬虫来进行网页的爬取。
如果scrapy的某个项目目录内使用该命令,则会调用该项目中的爬虫来进行爬取

scrapy fetch -h列出 fetch命令的相关参数

比如:

--headers参数,来控制显示对应的爬虫爬取网页时候
的头信息--nolog参数,来控制不显示日志信息--spider=SPIDER参数,来控制使用哪个爬虫--logfile=FILE参数,来指定存储日志信息的文件--loglevel=LEVEL参数,来控制日志等级

例:通过–headers参数和–nolog参数控制爬取新浪新闻首页(http://news.sina.com.cn)的时候的头信息,并且不显示日志信息

scrapy fetch --headers --nolog http://news.sina.com.cn

(2) runspider命令
可以实现不依托scrapy爬虫项目,直接运行一个爬虫文件
例如:我们编写了一个名为 first.py 的爬虫文件

scrapy runspider --loglevel=INFO first.py

可以使用此命令直接运行这个爬虫文件,并不需要依托一个完整的爬虫项目,只需要拥有对应的爬虫文件即可

(3)settings命令
可以查看scrapy对应的配置信息

如果在scrapy项目目录内使用settings命令,查看的是对应项目的配置信息,
如果在scrapy项目目录外使用settings命令查看的是默认配置信息。

在我们创建的爬虫项目文件中。有一个名 settings.py 的文件。我们可以在命令行中进入该项目所在目录。
然后使用 settings 命令查看该项目的配置信息。
例如:

scrapy settings --get BOT_NAME查看配置信息中 BOT_NAME 所对应的值
BOT_NAME 可以在 settings.py 的文件中找到

从命令行中退出到项目目录以外,然后使用该命令,查看的是默认配置信息。

scrapy settings --get BOT_NAME查看配置信息中 BOT_NAME 所对应的值
可以看到,scrapy默认的 BOT_NAME值是:scrapybot

(4) shell命令
通过该命令可以启动 scrapy 交互终端,

scrapy交互终端经常在开发以及调试的时候用的,使用交互终端可以实现在不启动爬虫的情况下,对网站响应进行调试。

同样,在交互终端中,我们也可以写一些python代码进行相应的测试。

比如:使用 shell 命令为爬取百度首页,创建一个交互终端环境,并设置为不输出日志信息。

scrapy shell http://www.baidu.com --nolog

在交互模式中可以使用 xpath 表达式进行网页信息的提取。
我们可以使用 exit()命令退出交互终端。

(5) startproject 命令
主要用于创建爬虫项目

(6)version 命令
通过该命令可直接显示scrapy的版本信息

scrapy versionscrapy version -v
查看与scrapy相关的其他版本的信息

(7)view 命令
可以通过该命令,实现下载某个网页,并用浏览器查看的功能

比如:下载网页新闻首页(http://news.163.com)

scrapy view http://news.163.com

完成后,会自动打开浏览器,并展示已经下载到本地的网页。

项目命令

(1)bench 命令
可以测试本地硬件的性能,
会显示每分钟大约可以爬取多少个网页

(2)genspider命令
可以使用该命令来创建一个爬虫文件,这是一种快速创建爬虫文件的方式。

使用该命令可以基于现有的爬虫模板直接生成一个新的爬虫文件,同样需要在scrapy爬虫项目目录中,才能使用该命令。

scrapy genspider -l
使用该命令的-l 参数来查看当前使用的爬虫模板,如下图:


可以看到当前可以使用的爬虫模板有basic,crawl,csvfeed,xmlfeed
可以基于其中的任何一个爬虫模板来生成一个爬虫文件

格式:

scrapy genspider -t 模板 爬虫名称 "网站域名"例如:
scrapy genspider -t basic a "baidu.com"
创建了一个名称为a 的爬虫,爬取的网站是:http://www.baidu.com

可以通过 -d参数实现查看某个爬虫模板的内容

scrapy genspider -d csvfeed

(3)check命令
爬虫的测试比较麻烦,所以在scrapy中使用合同(contract : 也有翻译为契约,是一种交互式的检查方式)的方式对爬虫进行测试。

scrapy check 爬虫名例如:
scrapy check a

执行完毕后,会出现如下图所示:

说明该爬虫文件的合同检查通过

(4)crawl 命令
可以通过这个命令来启动某个爬虫,
格式是:

scrapy crawl 爬虫名

(5)list 命令
可以列出当前可以使用的爬虫文件
格式:

scrapy list

(6)edit 命令
可以直接打开对应的编辑器对爬虫文件进行编辑,
该命令在windows中执行时会出现一点问题,改命令非常适合应用于Linux,
比如:要在Linux中使用edit命令来编辑某个爬虫文件,我们可以首先使用scrapy list先列出当前存在的爬虫文件,例:可以使用的爬虫文件是 abc,就可以直接使用下列命令:

scrapy edit abc

执行了该命令后,会自动调用对应的编辑器打开该爬虫文件。

(7)parse 命令
通过该命令,我们可以实现获取指定的url网址,并使用对应的爬虫文件进行处理和分析。

例如:获取百度首页(http:www.baidu.com)

scrapy parse http:www.baidu.com --nolog

由于这里没有指定爬虫文件,也没有指定处理函数,所以此时会使用默认的爬虫文件和默认的处理函数,进行相应的处理,

scrapy parse -h查看scrapy parse命令的参数,如下图:

以上参数主要分为两类:
普通参数(Options)
全局参数(Global Options)

parse命令对应的参数表

参数 含义
- -spider=SPIDER 强行指定某个爬虫文件spider进行处理
-a NAME=VALUE 设置spider的参数,可能会重复
- -pipelines 通过pipelines来处理items
- -nolinks 不展示提取到的链接信息
- -noitems 不展示得到的items
- -nocolour 输出结果颜色不高亮
- -rules,-r 使用CrawlSpider规则去提取回调的函数
- -callback=CALLBACK,-c CALLBACK 指定spider用于处理返回的响应的回调函数
- -depth=DEPTH,-d DEPTH 设置爬行深度,默认深度1
- -verbose,-v 显示每层的详细信息

比如:如果想指定某个爬虫文件进行处理,可以使用--spider参数实现,

scrapy parse http://www.baidu.com --spider=abc --nologh

指定了abc爬虫文件,来对百度首页,进行处理,并且不输出日志信息

scrapy入门之创建爬虫项目+scrapy常用命令相关推荐

  1. Scrapy创建爬虫项目步骤

    Scrapy创建爬虫项目 1.打开cmd命令行工具,输入scrapy startproject 项目名称 2.使用pycharm打开项目,查看项目目录 3.创建爬虫,打开CMD,cd命令进入到爬虫项目 ...

  2. python scrapy教程实例_爬虫框架Scrapy的第一个爬虫示例入门教程

    原标题:爬虫框架Scrapy的第一个爬虫示例入门教程 我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建 ...

  3. 爬虫项目——Scrapy爬取Boss直聘

    Scrapy添加代理爬取boss直聘,并存储到mongodb 最终爬取截图 项目创建 items Spider Middleware添加ip代理 Pipeline添加mongodb存储 最终爬取截图 ...

  4. python 爬取数据还要下载scrapy吗_python网络爬虫之Scrapy

    本文分享的大体框架包含以下三部分 (1)首先介绍html网页,用来解析html网页的工具xpath (2)介绍python中能够进行网络爬虫的库(requests,lxml,scrapy等) (3)从 ...

  5. scrapy mysql 豆瓣_Python爬虫之Scrapy+Mysql+Mongodb爬豆瓣top250电影

    学习python时,爬虫是一种简单上手的方式,应该也是一个必经阶段.本项目用Scrapy框架实现了抓取豆瓣top250电影,并将图片及其它信息保存下来.爬取豆瓣top250电影不需要登录.没有JS解析 ...

  6. gradle构建多模块项目_Gradle入门:创建多项目构建

    gradle构建多模块项目 尽管我们可以仅使用一个模块来创建一个运行中的应用程序,但有时将我们的应用程序划分为多个较小的模块是比较明智​​的. 因为这是一个相当普遍的用例,所以每个自重的构建工具都必须 ...

  7. Gradle入门:创建多项目构建

    尽管我们只能使用一个模块来创建一个工作的应用程序,但是有时将我们的应用程序划分为多个较小的模块是比较明智​​的. 因为这是一个相当普遍的用例,所以每个自重的构建工具都必须支持它,Gradle也不例外. ...

  8. python中scrapy是什么_python爬虫中scrapy组件有哪些?作用是什么?

    最近苹果12的消息一直活跃,连小编这种不是果粉的人都知道了.虽然苹果是一部性能不错的手机,但是它各个零件却是来源于不同的地方,可见再好的成品也是需要不同零件支撑的.那么,python爬虫中scrapy ...

  9. Linux常用命令(一) 项目部署常用命令

    文章目录 前言 一.部署项目常用命令学习 1.进入目录 cd 2.查询目录 ll 3.新建路径/文件夹 mkdir 4.删除目录rmdir/文件夹 rm 5.vi / vim命令基本操作 6.上传文件 ...

  10. 01《穿越时空的git》科幻小电影-Git创建版本库和常用命令操作-提交、回退、撤销、删除

    小时候看过一部印象很深的剧叫做<穿越时空的爱恋>,今日也厚着脸皮导演一部<穿越时空的git>,不上映,纯属自嗨! 1.创建版本库 what is 版本库?无论我们平常使用git ...

最新文章

  1. Grafana常用的监控
  2. iOS进阶之架构设计MVVM模式实践(11)
  3. Linux内核探讨-- 第三章
  4. 6.1 图的深度优先和广度优先搜索
  5. (41)System Verilog输出变量时序延迟
  6. 中国兽医显微镜市场趋势报告、技术动态创新及市场预测
  7. 教你给视频画面打马赛克
  8. 最新WannaRen勒索病毒解密工具
  9. 怎样用计算机粉碎文件夹,文件无法删除也无法粉碎怎么解决(电脑系统文件夹无法删除的常见解决方法)...
  10. 非模式生物KEGG富集分析: clusterProfiler
  11. ImageNet ILSVRC2012数据集(分类部分)简要介绍和初步处理
  12. 基于单片机的防盗报警监控系统设计(#0401)
  13. Centos 7 matlab2018a安装及键盘无法输入的问题
  14. 计算机游戏动漫制作自我鉴定,动画制作专业毕业生的自我鉴定
  15. QAT量化感知训练(一)【详解】
  16. 【电力预测】基于matlab GUI灰色模型电力负荷预测【含Matlab源码 769期】
  17. 想要学习Java,没有英语基础可以学吗?
  18. 什么叫封装?封装有什么作用?
  19. 【gdoi2018 day1】小学生图论题
  20. 此apple id尚未用于App Store(如需帮助,请联系iTunes支持,网址www.apple.com/support/itunes/ww/)

热门文章

  1. 如何进行自学软件测试?
  2. PlayReady 和WideVine
  3. linux终端设置为管理员权限,ubuntu 中的管理员权限
  4. Linux 卸载Mysql
  5. 基于51单片机智能交通灯电路方案设计
  6. 牛市来了,我劝读者不要炒股他却骂我不地道...
  7. 酒店后台管理系统、客栈管理、入住会员、房间管理、房源、房型、订单、报表、酒店企业、短信模板、积分、打印、交接班、住宿、入住、锁房、收支流水、房间销售、消费项目、酒店管理、渠道销售、支付管理、连锁酒店
  8. 【STP】生成树协议及STP 802.1D (上)
  9. Matlab imshow, image, imagesc 三者详细分析
  10. 供应链库存管理-供应链库存案例分析