3.Scrapy框架——CrawlSpider介绍

一、什么是CrawlSpider?

Scrapy框架中分两类爬虫:1.Spider类  2.CrawlSpider类

crawlspider是Spider的派生类(一个子类),CrawlSpider类定义了一些规则(rule)来提供跟进link(链接)的方便的机制,从爬取的网页中获取link并继续爬取的工作更适合。

二、为什么使用CrawlSpider?

1.针对有跟进机制的网页爬取非常方便

2.编写容易,只需要定义爬取url规则

三、如何使用CrawlSpider?

1.创建爬虫项目

scrapy startproject pcxm

2.编写主程序的.py文件

scrapy genspider -t crawl pcxm 域名

四、关键方法

1.LinkExtractors链接提取器:

使用LinkExtractors可以不用程序员自己提取想要的url,然后发送请求。这些工作都可以交给LinkExtractors,他会在所有爬的页面中找到满足规则的url,实现自动的爬取。

class scrapy.linkextractors.LinkExtractor(
    allow = (),
    deny = (),
    allow_domains = (),
    deny_domains = (),
    deny_extensions = None,
    restrict_xpaths = (),
    tags = ('a','area'),
    attrs = ('href'),
    canonicalize = True,
    unique = True,
    process_value = None
)
  • allow:允许的url。所有满足这个正则表达式的url都会被提取。【编写正则表达式】【重要】
  • deny:禁止的url。所有满足这个正则表达式的url都不会被提取。【编写正则表达式】
  • allow_domains:允许的域名。只有在这个里面指定的域名的url才会被提取。
  • deny_domains:禁止的域名。所有在这个里面指定的域名的url都不会被提取。

2.Rule规则类:

class scrapy.spiders.Rule(
    link_extractor, 
    callback = None, 
    cb_kwargs = None, 
    follow = None, 
    process_links = None, 
    process_request = None
)
  • link_extractor:一个LinkExtractor对象,用于定义爬取规则。【重要】
  • callback:满足这个规则的url,应该要执行哪个回调函数。【重要】
  • follow:指定根据该规则从response中提取的链接是否需要跟进。【重要】
  • process_links:从link_extractor中获取到链接后会传递给这个函数,用来过滤不需要爬取的链接。

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值