一,前言
之前利用scrapy爬取伯乐在线,知乎时是用到scrapy的basic模板,即Spider,这次用CrawlSpider来爬取拉勾网的招聘信息
CrawlSpider基于Spider,但是可以说是为全站爬取而生,是目前最流行的scrapy模板
二,创建工程
在cmd中cd进入项目的目录,然后输入:scrapy gensipder -t crawl lagou www.lagou.com
默认生成:
三,简要说明
CrawlSpider是爬取那些具有一定规则网站的常用的爬虫,它基于Spider并有一些独特属性,也就是之前spider的爬取规则现在也适用,下面的参数可以按ctrl点击CrawlSpider获取源码
- rules: 是Rule对象的集合,用于匹配目标网站并排除干扰
- parse_start_url: 用于爬取起始响应,必须要返回Item,Request中的一个。
因为rules是Rule对象的集合,所以这里也要介绍一下Rule对象
它有几个参数:linkExtractor、callback=None、cb_kwargs=None、follow=None、process_links=None、process_request=None
- callback为回调函数,传入一个str,即回调函数的名字
- follow为boolean类型,为true就继续跟踪,为false则不往下跟踪
其中的linkExtractor既可以自己定义,也可以使用已有LinkExtractor类,主要参数为:
- allow:满足括号中“正则表达式”的值会被提取,如果为空,则全部匹配。
- deny:与这个正则表达式(或正则表达式列表)不匹配的URL一定不提取。
- allow_domains:会被提取的链接的domains。
- deny_domains:一定不会被提取链接的domains。
- restrict_xpaths:使用xpath表达式,和allow共同作用过滤链接。还有一个类似的restrict_cs