sprapy的spider和crawlspider

spider和crawlspider都是用来实现数据解析的爬虫模块,但是还是有很大区别的.
原理来说都可以达到目的,但是应用情况嫩实现数量级的区别.

建立方式:
scrapy genspider 爬虫名 指定域
scrapy genspider -t crawl 爬虫名 指定域

spider有parse函数
crawl spider没有parse函数

crawl spider生成了一个rules,内含一个元祖或者列表,包含rule对象
rule标识规则,包含linkextractor,callback,follow等参数.
linkextractor连接提取器,可以通过正则,或者xpath或者css规则提取.
callback标识经过提取器取出来的url地址响应的回调函数,
重点是follow=true/falase 标识是否在当前页面中继续使用该规则进行深层提取.
如果一个被提取的url满足多个Rule,那么会从rules中选择一个满足匹配条件的Rule执行

另外,由于没有请求参数,crawlspider无法进行meta参数的传递,这就限制了他的一部分功能,比如下面的网页,这种

如果要求提取所有第二层页面中的职位发布信息,而且需要发布时间,用crawlspider提取的话,能很快匹配第二页数据,但是发布时间需要拼接,实现其来很麻烦,就不适合使用crawlspider,

如下图

像这样的网站,数据都在同一个页面内,翻页后的数据格式页相同,用crawlspider就能实现快速的提取和翻页解析

注意:一般我们提取翻页信息会直接匹配"下一页"标签的链接,但是使用框架来爬取的时候,一般用匹配的是页数标签的链接,因为框架默认开启了多进程爬取,使用页数标签的连接进行解析,就相当于程序执行时候,就在1,2,3,4,5,13这些页面中解析,就是同时在进行6个页面的抓取,而用下一页的方法就只在两页中爬取,并且比如第五页连接内的页数标签内还会有性的页码,就会更快的执行完成整个项目.这是数量级的变化.

作者:muzhe/1024
来源:CSDN
原文:https://blog.csdn.net/muzhe1024/article/details/85692496
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值