欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Scrapy的Spider类和CrawlSpider类

程序员文章站 2023-11-09 18:08:16
Scrapy shell 用来调试Scrapy 项目代码的 命令行工具,启动的时候预定义了Scrapy的一些对象 设置 shell Scrapy 的shell是基于运行环境中的python 解释器shell 本质上就是通过命令调用shell,并在启动的时候预定义需要使用的对象 scrapy允许通过在 ......

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

最后,从蜘蛛返回的项目通常会持久保存到数据库(在某些项目管道中)或导出写入文件

 

属性

Scrapy的Spider类和CrawlSpider类

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参数

Scrapy的Spider类和CrawlSpider类

allow:正则表达式,满足的url会被提取出来

deny:正则表达式,满足的url不会被提取出来

estrict_xpaths:路径表达式,符合路径的标签提取出来

 

rule参数

Scrapy的Spider类和CrawlSpider类

linkextractor:提取链接的实例对象

callback:回调函数