CrawlSpider是Scrapy中最常用的爬虫,它继承自Spider类,提供了一些额外的功能,可以更快捷的爬取网站。它主要用于更快速的爬取大量相关网页,比如爬取一个新闻网站的所有新闻,一个论坛的所有帖子等。
1. 创建一个爬虫类,继承CrawlSpider类,重写其中的name和start_urls属性:
class MyCrawler(CrawlSpider): name = 'mycrawler' start_urls = ['http://www.example.com/']
2. 在爬虫类中定义一个规则,用于提取网页中的链接:
rules = [ Rule(LinkExtractor(allow=r'/category/\d+/'), callback='parse_category', follow=True), ]
3. 定义一个回调函数,用于处理提取到的链接:
def parse_category(self, response): # 处理提取到的链接
4. 在爬虫类中定义一个提取器,用于提取网页中的数据:
item = Item() item['title'] = response.xpath('//title/text()').extract_first() item['content'] = response.xpath('//div[@class="content"]').extract_first() return item
5. 启动爬虫:
scrapy crawl mycrawler
CrawlSpider提供了一种更快捷的方式来爬取大量相关网页,它可以根据规则自动提取网页中的链接,并调用回调函数处理提取到的链接,同时也可以通过提取器提取网页中的数据。
本文链接:http://task.lmcjl.com/news/10067.html