Scrapy三
一,CrawlSpider
通过定义一组规则,为跟踪连接提供非常便利的机制
-
创建CrawlSpider:
scrapy genspider -t crawl weather.spider www.weather.com.cn
关键字 关键字 爬虫类 爬虫名 爬取的网页域名
-
Rule
Rule 用来定义CrawlSpider的爬取规则
源码:
-
LinkExtractor
从web页面中提取最终将被跟踪的连接,可以自己定义,必须要有extract_links方法
源码:
LinkExtractor的使用(重要)
xpath的使用
# 限制 re 的匹配范围
二,CrawlSpider运行流程
-
基类Spider
start_urls 生成初始的Requests请求
下载器返回response
response交给回调函数进行处理
返回items和Request(接着请求->处理)
-
CrawlSpider
start_urls 生成初始的Requests请求
下载器返回response
response交给rules进行规则匹配,匹配出复合规则的url进行请求
回调函数对response进行解析,字段
三,scrapy去重机制
start_url
里面的url是不会有去重机制的,如果重复访问一个网站,访问过一次就不会访问再访问了,但是如果url在start_url里面出现,是不会被过滤的,最多只会被请求两次(使用dont_filter=True这个参数不会对该url进行过滤,比如用在登录)