美文网首页
关于爬虫的分享

关于爬虫的分享

作者: 於祁 | 来源:发表于2018-09-02 21:55 被阅读260次

在爬虫课堂(二十二)|使用LinkExtractor提取链接中讲解了LinkExtractor的使用,本章节来讲解使用CrawlSpider+LinkExtractor+Rule进行全站爬取。

一、CrawlSpider介绍

Scrapy框架中分两类爬虫,Spider类和CrawlSpider类。Spider类的使用已经讲解了很多,但是如果想爬取某个网站的全站信息的话,CrawlSpider类是个非常不错的选择。CrawlSpider继承于Spider类,CrawlSpider是爬取那些具有一定规则网站的常用爬虫,可以说它是为全站爬取而生。

它除了继承过来的属性(name、allow_domains)外,还提供了新的属性和方法:

1.1、LinkExtractors

class scrapy.linkextractors.LinkExtractor

Link Extractors 的目的很简单:提取链接。每个Link Extractor有唯一的公共方法是 extract_links(),它接收一个 Response 对象,并返回一个 scrapy.link.Link 对象。

Link Extractors要实例化一次,并且 extract_links()方法会根据不同的 Response 调用多次提取链接。

主要参数如下:

allow:满足括号中“正则表达式”的值会被提取,如果为空,则全部匹配。

deny:与这个正则表达式(或正则表达式列表)不匹配的URL一定不提取。

allow_domains:会被提取的链接的domains。

deny_domains:一定不会被提取链接的domains。

restrict_xpaths:使用XPath表达式,和allow共同作用过滤链接。

关于Link Extractors如何使用可以参考爬虫课堂(二十二)|使用LinkExtractor提取链接这篇文章。

1.2、rules

在rules中包含一个或多个Rule对象,每个Rule对爬取网站的动作定义了特定操作。如果多个Rule匹配了相同的链接,则根据规则在本集合中被定义的顺序,第一个会被使用。

Rule类的定义如下:

class scrapy.contrib.spiders.

Rule

(link_extractor,callback=None,cb_kwargs=None,follow=None,process_links=None,process_request=None)

主要参数如下:

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提取链接中讲解了LinkExtractor的使用,本章节来讲解...

  • Node.js爬虫实战 - 爬你喜欢的

    前言 今天没有什么前言,就是想分享些关于爬虫的技术,任性。来吧,各位客官,里边请... 开篇第一问:爬虫是什么嘞?...

  • 手工打造分布式爬虫(Python)

    前言 这次分享的文章是我《Python爬虫开发与项目实战》基础篇 第七章的内容,关于如何手工打造简单分布式爬虫 (...

  • 爬虫入门

    为什么要学习爬虫? Python做爬虫优势 关于Python网络爬虫,我们需要学习的有: 什么是爬虫? 网络爬虫(...

  • python爬虫: 爬一个英语学习网站

    爬虫的基本概念 关于爬虫的基本概念, 推荐博客https://xlzd.me/ 里面关于爬虫的介绍非常通俗易懂.简...

  • Node爬虫+MongoDB

    一、Demo介绍 在每周一次的公司内部分享上,我分享了关于node的一个爬虫的Demo。通过这个Demo,分享了关...

  • 2019年最全Python常用爬虫代码总结!(文末附python

    今天小编就为大家分享一篇关于Python常用爬虫代码总结方便查询,小编觉得内容挺不错的,现在分享给大家,具有很好的...

  • 零基础学习爬虫并实战

    本篇主要从爬虫是什么、爬虫的一般流程、爬虫各个流程的实现方法、爬虫实例四个方面分享零基础了解爬虫,并进行简单的实战...

  • Python 实现视频爬取下载及断电续传优化!

    一般情况下我们使用爬虫更多的应该是爬数据或者图片吧,今天在这里和大家分享一下关于使用爬虫技术来进行视频下载的方法,...

  • 爬虫分享

    目标:对不懂技术的同学分享爬虫,帮助其提高在工作的效率 Slogan 无须编程、不敲代码的爬虫技术 本次分享目标与...

网友评论

      本文标题:关于爬虫的分享

      本文链接:https://www.haomeiwen.com/subject/fkkvwftx.html