scrapy命令行
全局命令(全局运行):
startproject settings runspider shell fetch view version |
项目(Project-only)命令(必须在项目中运行):
crawl check list edit parse genspider deploy bench |
创建一个项目:
scrapy startproject spiderdemo |
新建一个Spider模块
scrapy genspider cnblogs https://www.cnblogs.com/ |
查看scrapy提供的spider模板列表
scrapy genspider -l |
Available templates: basic crawl csvfeed xmlfeed |
查看scrapy的basic模板源代码
scrapy genspider -d basic |
# -*- coding: utf-8 -*-
import scrapy
class $classname(scrapy.Spider):
name = '$name'
allowed_domains = ['$domain']
start_urls = ['http://$domain/']
def parse(self, response):
pass
|
根据basic模板生成spider
scrapy genspider -t basic neihan http://neihanshequ.com/ |
运行爬虫进行爬去内容(需要在项目中运行)
scrapy crawl spidername |
将爬取输出到Json数据
scrapy crawl spidername -o blogs.json |
运行contract检查爬虫
scrapy check |
列出项目中所有可用爬虫
scrapy list |
使用Scrapy下载器(downloader)下载给定的URL,并将获取到的内容送到标准输出
输出请求URL的headers头信息。屏蔽日志输出
scrapy fetch --nolog --headers http://neihanshequ.com/ |
使用Scrapy爬去目标URL到本地通过浏览器打开查看。确认和自己目标一致
scrapy view http://neihanshequ.com/ |
启动Scrapy shell(已安装好ipython)
scrapy shell "http://neihanshequ.com/" |
获取给定的URL并使用相应的spider分析处理
scrapy 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: 显示每个请求的详细信息
scrapy parse https://news.cnblogs.com/ scrapy parse https://news.cnblogs.com/ -c blogs |
获取Scrapy settings
scrapy settings scrapy settings --get BOT_NAME scrapy settings --get DOWNLOAD_DELAY |
在未创建项目的情况下,运行一个编写在Python文件中的spider。
scrapy runspider blogs.py |