码迷,mamicode.com
首页 > 其他好文 > 详细

CrawlSpider

时间:2019-04-06 12:37:08      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:main   工程   创建   lsp   scrapy   xpath   false   OLE   设计原则   

CrawlSpider

简介

CrawlSpider是Spider的一个子类,除继承了Spider的特性和功能外,还派生了自由的更强大的特性和能力。最显著的功能是"LinkExtracts",Spider是所有爬虫的基类,设计原则只是为了爬取start_url列表中的网页,而从爬取到的网页中进一步提取url进行爬取的工作用CrawlSpider更合适。

基本使用

  1. 创建工程:scrapy startproject xxx
  2. 创建爬虫:scrapy genspider -t crawl 爬虫名 起始url

    Rule

    Rule对象是一个爬取规则的类。
  • 主要参数说明:
    • link_extractor:是一个Link Extractor对象。其定义了如何从爬取到的页面提取链接。
    • callback:是一个callable或string(该Spider中同名的函数将会被调用)。从link_extractor中每获取到链接时将会调用该函数。该回调函数接收一个response作为其第一个参数,并返回一个包含Item以及Request对象(或者这两者的子类)的列表。
    • cb_kwargs:包含传递给回调函数的参数(keyword argument)的字典。
    • follow:是一个boolean值,指定了根据该规则从response提取的链接是否需要跟进。如果callback为None,follow默认设置True,否则默认False。
    • process_links:是一个callable或string(该Spider中同名的函数将会被调用)。从link_extrator中获取到链接列表时将会调用该函数。该方法主要是用来过滤。
    • process_request:是一个callable或string(该spider中同名的函数都将会被调用)。该规则提取到的每个request时都会调用该函数。该函数必须返回一个request或者None。用来过滤request。

      LinkExtractor

      用于从网页中抽取链接
  • 主要参数说明:
    • allow:满足括号中”正则表达式”的值会被提取,如果为空,则全部匹配。
    • deny:与这个正则表达式(或正则表达式列表)不匹配的url一定不提取
    • allow_domains:会被提取的连接的domains
    • deny_domains:一定不会被提取链接的domains。
    • restrict_xpaths:使用xpath表达式,和allow共同作用过滤链接

      问题

  • 想要使用全站的数据,有几种实现方法?
    • 基于scrapy的Spider的递归爬取实现。
    • 基于scrapyde crawlspider的自动爬取实现(更加简洁、高效)

CrawlSpider

标签:main   工程   创建   lsp   scrapy   xpath   false   OLE   设计原则   

原文地址:https://www.cnblogs.com/tmdhhl/p/10661211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!