3.Scrapy框架——CrawlSpider介绍

叁歲伎倆 2022-11-17 14:35 245阅读 0赞

一、什么是CrawlSpider?

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

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

二、为什么使用CrawlSpider?

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

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

三、如何使用CrawlSpider?

1.创建爬虫项目

  1. scrapy startproject pcxm

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

  1. scrapy genspider -t crawl pcxm 域名

四、关键方法

1.LinkExtractors链接提取器:

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

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

2.Rule规则类:

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

发表评论

表情:
评论列表 (有 0 条评论,245人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Scrapy 框架介绍

    一、Scrapy是什么 Scrapy 是一个基于 Twisted 的异步处理框架,是纯 Python 实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以

    相关 Scrapy框架介绍

    1.什么是网络爬虫 网络爬虫是根据特定的规则在网络上自动爬取所需信息的脚本或程序,分为通用爬虫和聚焦爬虫,传统的通用网络爬虫主要为门户站点搜索引擎和大型Web服务提供商采

    相关 Scrapy爬虫框架介绍

    Scrapy简介 > Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 > 其最