CrawlSpider
概念
Spider的子类
实现了全站数据爬取,即所有页码
全站数据爬取的方式
基于Spider:通用url模板,手动发送请求
基于CrawlSpider
CrawlSpider的使用
- 创建一个工程
- cd XXX
- 创建爬虫文件(以CrawlSpider为父类)scrapy genspider -t crawl XXX www.xxxx.com
链接提取器
根据指定规则(allow=正则表达式)进行指定链接的提取
规则解析器
将链接提取器提取到的链接进行指定规则(callback)的解析
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
class SunSpider(CrawlSpider):
name = 'sun'
# allowed_domains = ['www.xxx.com']
start_urls = ['http://wz.sun0769.com/political/index/politicsNewest']
# 链接提取器.根据指定规则(allow=正则表达式)进行指定链接的提取
link = LinkExtractor(allow=r'id=1&page=\d+')
rules = (
# 规则解析器.将链接提取器提取到的链接进行指定规则(callback)的解析
Rule(link, callback='parse_item', follow=True),
)
def parse_item(self, response):
print(response)
打印输出,验证获取到response