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:回调函数

 

 

 

猜你喜欢

转载自www.cnblogs.com/jiyu-hlzy/p/11831441.html