-
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:回调函数
follow:指定是否应该从使用此规则提取的每个响应中跟踪链接
process_links:用于过滤连接的回调函数
process_request:用于过滤请求的回调函数
url去重