Crawlspider通用爬虫

创建CrawlSpider模板:

scrapy genspider -t crawl spider名称 xxxx.com

继承CrawlSpider

  • LinkExtractors目的是提取链接
  • Rule表示的是爬取的规则
  • parse_start_url(response)
    当start_url的请求返回时,该方法被调用。该方法分析最初的返回值并必须返回一个Item对象或一个Request对象或者一个可迭代的包含二者的对象

当编写爬虫规则时,请避免使用parse 作为回调函数。 由于CrawlSpider使用parse 方法来实现其逻辑,如果 您覆盖了parse 方法,CrawlSpider将会运行失败。

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。

LinkExtractors

主要参数:

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

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

allow_domains:会被提取的连接的domains

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CrawlSpider是spider的派生类,其设计原理是爬取start_url列表中的网页,CrwalSpide...
    qianxun0921阅读 396评论 0 0
  • 总结一下之前的spider,总的来说,Spider类就是定义了如何爬取某个(或某些)网站。包括了爬取的动作以及如何...
    王小鱼鱻阅读 1,248评论 0 2
  • 敬畏—进入—体验—交给—持续 1,缺啥补啥,怕啥练啥; 2,一切为我所用,所用为团队家; 3,我想变,我要变,我...
    GL_212a阅读 113评论 0 0
  • 雷雁雄4月10日总结:今天出差,开了一天车,下午到客户处,但今天没谈成事,只有等明天了。
    雷雁雄阅读 290评论 1 0
  • 其实,我喜欢你,不只是简简单单的一句话,因为那是我内心的独白 其实,我喜欢你,不只是说说而已,因为我会用行动来告诉...
    十言Yans阅读 519评论 0 1