scrapy爬虫-------命令解析

scrapy是通过命令行进行控制的,你可以在命令行中输入一个scrapy,会出现一拍命令。

你也可以通过tree来查看scrapy的目录结构,scrapy.cfg存放的目录被认为是项目的根目录,该文件中包含python模块名的字段定义了项目的设置。下面的代码是我一个爬取天气的爬虫中的.cfg文件。

# Automatically created by: scrapy startproject
#
# For more information about the [deploy] section see:
# http://doc.scrapy.org/en/latest/topics/scrapyd.html

[settings]
default = weather.settings

[deploy]
#url = http://localhost:6800/
project = weather

一般来说使用scrapy工具的第一件事就是创建您的scrapy项目

scrapy startproject weather

创建了项目之后,可以通过scrapy工具来对其进行控制和管理,有些scrapy命令要求必须在项目中运行,比如crawl,可以通过命令行查看,你可以在项目之外和项目中分别输入scrapy查看有什么不同的。

你可以使用scrapy <command> -h查看命令的作用,也可以通过scrapy -h查看所有可用的命令。

scrapy提供两种类型的命令,一种必须在scrapy项目中运行,另一种则为全局命令。

    全局命令
    startproject
    settings
    runspider
    shell
    fetch
    view
    version
    项目命令
    crawl
    check
    list
    edit
    parse
    genspider
    deploy
    bench

startproject

scrapy startproject project_name

在文件夹下创建一个名为project_name的scrapy项目

scrapy startproject myproject

genspider

scrapy genspider [-t template] <name> <domain>

在当前项目中创建spider,这仅仅是创建spider的一种快捷方法,该方法可以使用提前定义好的模板来生成spider,也可以子集创建spider的源码文件。

[email protected]:~$ cd weather
[email protected]:~/weather$ scrapy genspider -l
Available templates:
  basic
  crawl
  csvfeed
  xmlfeed
[email protected]:~/weather$ scrapy genspider -d basic
# -*- coding: utf-8 -*-
import scrapy

class $classname(scrapy.Spider):
    name = "$name"
    allowed_domains = ["$domain"]
    start_urls = (
        'http://www.$domain/',
    )

    def parse(self, response):
        pass

[email protected]:~/weather$ scrapy genspider -t basic spider1 www.jd.com
Created spider 'spider1' using template 'basic' in module:
  weather.spiders.spider1

crawl

scrapy crawl <spider>

使用spider进行抓取

scrapy crawl weather

check

scrapy check [-l] <spider>

运行contract检查

list

scrapy list

列出当前项目中所有可用的spider,每一行输出一个spider。

[email protected]:~/weather$ scrapy list
myweather
spider1
weather_spider1
weather_spider2

edit

scrapy edit <spider>

使用EDITOR中设定的编辑器编辑给定的spider,在我电脑里运行的是vim,我是ubuntu。

fetch

scrapy fetch <url>

使用scrapy下载器下载给定的url,并将获取的内容送到标准输出。它是一个全局命令,在项目之外就可以运行,主要是提取网页的内容到标准输出中。

scrapy fetch --nolog --headers http://www.example.com/

view

scrapy view <url>

在浏览器中打开给定的url,并以scrapy spider获取道德形式展现。有些时候spider获取到的页面和普通用户看到的并不相同。因此该命令可以用来检查spider所获取的页面,并确认这是你所期望的。

scrapy view http://www.jd.com/

shell

scrapy shell [url]

以给定的URL或者空启动scrapy shell,进入shell之后你会看到一排命令行,可以进行你想要的操作。

scrapy shell http://www.jd.com/

parse

scrapy parse <url> [option]

获取给定的URL并使用相应的spider分析处理。如果你提供--callback选项,则使用spider的该方法处理,否则使用parse。

这个命令还需补充一下,未完待续。

    --spider=SPIDER: 跳过自动检测spider并强制使用特定的spider
    --a NAME=VALUE: 设置spider的参数(可能被重复)
    --callback or -c: spider中用于解析返回(response)的回调函数
    --pipelines: 在pipeline中处理item
    --rules or -r: 使用 CrawlSpider 规则来发现用来解析返回(response)的回调函数
    --noitems: 不显示爬取到的item
    --nolinks: 不显示提取到的链接
    --nocolour: 避免使用pygments对输出着色
    --depth or -d: 指定跟进链接请求的层次数(默认: 1)
    --verbose or -v: 显示每个请求的详细信息

settings

scrapy settings [options]

获取scrapy的设定,在项目中运行是,该命令将会输出项目的设定值,否则输出scrapy默认设定。

scrapy settings --get BOT_NAME

scrapy settings --get DOWN_OAD_DELAY

runspider

scrapy runspider <spider_file.py>

在未创建项目的情况下,运行一个编写在python文件中的spider。

scrapy runspider myspider.py

version

scrapy version [-v]

输出scrapy版本。配合-v运行时,该命令同时输出python。twisted以及平台的信息,方便bug提交。

deploy

scrapy deploy [<target:project> | -l <target> | -l]

将项目部署到scrapyd服务

bench

scrapy bench

运行benchmark测试

自定义项目命令,你可以通过COMMAND——MODULE来添加自己的项目命令。

时间: 2024-08-02 23:05:06

scrapy爬虫-------命令解析的相关文章

同时运行多个scrapy爬虫的几种方法(自定义scrapy项目命令)

试想一下,前面做的实验和例子都只有一个spider.然而,现实的开发的爬虫肯定不止一个.既然这样,那么就会有如下几个问题:1.在同一个项目中怎么创建多个爬虫的呢?2.多个爬虫的时候是怎么将他们运行起来呢? 说明:本文章是基于前面几篇文章和实验的基础上完成的.如果您错过了,或者有疑惑的地方可以在此查看: 安装python爬虫scrapy踩过的那些坑和编程外的思考 scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据 scrapy爬虫成长日记之将抓取内容写入mysql数据库 如何让

Python网络爬虫之Scrapy常用命令

scrapy全局命令 要想了解在scrapy中由哪些全局命令,可以在不进入scrapy爬虫项目目录的情况下运行scrapy -h (1) fetch命令 fetch命令主要用来显示爬虫爬取的过程,如果在scrapy项目目录之外使用该命令,则会调用scrapy默认的爬虫来进行网页的爬取,如果在scrapy的某个项目目录内使用该命令,则会调用该项目中的爬虫来进行网页的爬取 --headers 控制显示对象的爬虫爬取网站的头信息 --nolog 控制不显示日志信息 --logfile==FILE 存储

一个咸鱼的python爬虫之路(五):scrapy 爬虫框架

介绍一下scrapy 爬虫框架 安装方法 pip install scrapy 就可以实现安装了.我自己用anaconda 命令为conda install scrapy. 1 Engine从Spider处获得爬取请求(Request)2Engine将爬取请求转发给Scheduler,用于调度 3 Engine从Scheduler处获得下一个要爬取的请求4 Engine将爬取请求通过中间件发送给Downloader5 爬取网页后,Downloader形成响应(Response)通过中间件发给En

Python之Scrapy爬虫框架安装及简单使用

题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. 本文档将

Scrapy爬虫框架的学习

第一步安装 首先得安装它,我使用的pip安装的 因为我电脑上面安装了两个python,一个是python2.x,一个是python3.x,所以为了区分,所以,在cmd中,我就使用命令:python2 -m pip install Scrapy  (注意我这里使用python2的原因是我给2个python重命名了一下) 安装之后,输入scrapy,出现如下图这样子的信息,表示成功安装了 如果有错误,可以参考一下:http://www.cnblogs.com/angelgril/p/7511741.

scrapy爬虫之爬取汽车信息

scrapy爬虫还是很简单的,主要是三部分:spider,item,pipeline 其中后面两个也是通用套路,需要详细解析的也就是spider. 具体如下: 在网上找了几个汽车网站,后来敲定,以易车网作为爬取站点 原因在于,其数据源实在是太方便了. 看这个页面,左边按照品牌排序,搜索子品牌,再挨个查看信息即可 按照通常的思路,是需要手动解析左边这列表 找出每个品牌的链接页面 结果分析源码发现,网站直接通过js生成的导航栏,直接通过这个链接生成的json即可获得所有的信息 http://api.

scrapy爬虫框架介绍

一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可用于如数据挖掘.监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架.因此Scrapy使用了一

Scrapy爬虫小demo总结

一. Scrapy入坑. a)       Scrapy的安装. 这个没什么可讲的,网上一大把. 注意的问题,可能我下载的是32位的python,出现了pywin32没法用的情况,这个直接pip install pypiwin32 就好. b)       安装验证. scrapy genspider baidu www.baidu.com 建立一个爬百度的爬虫. scrapy crawl baidu 成功爬取数据. c)        Scrapy项目创建: 首先进入要创建项目的目录:cd x

Python爬虫教程-31-创建 Scrapy 爬虫框架项目

本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Anaconda 下载地址:https://www.anaconda.com/download/ Scrapy 爬虫框架项目的创建 0.打开[cmd] 1.进入你要使用的 Anaconda 环境 1.环境名可以在[Pycharm]的[Se