Scrapy的Spider类和CrawlSpider类
scrapy shell
用来调试scrapy 项目代码的 命令行工具,启动的时候预定义了scrapy的一些对象
设置 shell
scrapy 的shell是基于运行环境中的python 解释器shell
本质上就是通过命令调用shell,并在启动的时候预定义需要使用的对象
scrapy允许通过在项目配置文件”scrapy.cfg”中进行配置来指定解释器shell,例如:
[settings]
shell = ipython
启动 shell
启动scrapy shell的命令语法格式:scrapy shell [option] [url|file]
url 就是你想要爬取的网址,分析本地文件时一定要带上路径,scrapy shell默认当作url
spider类
运行流程
首先生成初始请求以爬取第一个url,并指定要使用从这些请求下载的响应调用的回调函数
在回调函数中,解析响应(网页)并返回,item对象、request对象或这些对象的可迭代的dicts
最后,从蜘蛛返回的项目通常会持久保存到数据库(在某些项目管道中)或导出写入文件
属性
name: spider的名称、必须是唯一的
start_urls: 起始urls、初始的request请求来源
customer_settings: 自定义设置、运行此蜘蛛时将覆盖项目范围的设置。必须将其定义为类属性,因为在实例化之前更新了设置
logger: 使用spider创建的python日志器
方法
from_crawler:创建spider的类方法
start_requests:开始请求、生成request交给引擎下载返回response
parse:默认的回调方法,在子类中必须要重写
close:spider关闭时调用
crawlspider类
spider类 是匹配url,然后返回request请求
crawlspider类 根据url规则,自动生成request请求
创建crawlspider类爬虫文件
crapy genspider -t crawl 爬虫名 域名
linkextractor参数
allow:正则表达式,满足的url会被提取出来
deny:正则表达式,满足的url不会被提取出来
estrict_xpaths:路径表达式,符合路径的标签提取出来
rule参数
linkextractor:提取链接的实例对象
callback:回调函数