一、CrawlSpider 使用
1.1、CrawlSpider
CrawSpiders 是 Scrapy 框架中的一个特殊爬虫类,它用于处理需要跟随链接并抓取多个页面的情况。相比于基本的 Spider 类,CrawSpiders 提供了一个更灵活、更强大的方式来定义爬取规则。
在Scrapy中Spider是所有爬虫的基类,而CrawSpiders就是Spider的派生类。
适用于先爬取start_url列表中的网页,再从爬取的网页中获取link并继续爬取的工作
1.2、使用 CrawlSpider 的基本步骤
定义爬虫类:从 CrawlSpider 继承并定义爬虫类。
设置起始 URL:通过 start_urls 属性定义要开始爬取的 URL。
定义解析规则:通过 rules 属性设置爬取规则,这通常包括为页面提取数据和跟随链接的规则。
创建CrawlSpider
scrapy genspider -t crawl 爬虫名 (allowed_url)
1.3、使用CrawlSpider中核心的2个类对象
1.3.1、Rule对象
Rule类与CrawlSpider类都位于
scrapy.contrib.spiders
模块中
class scrapy.contrib.spiders.Rule(
link_extractor,
callback=None,
cb_kwargs=None,
follow=None,
process_links=None,
process_request=None)
参数含义:
link_extractor为LinkExtractor,用于定义需要提取的链接
callback参数:当link_extractor获取到链接时参数所指定的值作为回调函数
注意 回调函数尽量不要用parse方法,crawlspider已使用了parse方法
follow:指定了根据该规则从response提取的链接是否需要跟进。当callback为None,默认值为True