codecamp

scrapy 2.3 类蜘蛛CrawlSpider

Scrapy附带了一些有用的通用蜘蛛,您可以使用它们来对蜘蛛进行子类化。他们的目标是为一些常见的抓取案例提供方便的功能,比如根据特定规则跟踪站点上的所有链接从 Sitemaps 或分析XML/CSV源。

对于以下蜘蛛中使用的示例,我们假设您有一个项目 ​TestItem​ 宣布为 ​myproject.items​ 模块:

import scrapy

class TestItem(scrapy.Item):
    id = scrapy.Field()
    name = scrapy.Field()
    description = scrapy.Field()

CrawlSpider

classscrapy.spiders.CrawlSpider

这是最常用的爬行常规网站的蜘蛛,因为它通过定义一组规则为跟踪链接提供了一种方便的机制。它可能不是最适合您的特定网站或项目的,但它对于某些情况来说已经足够通用了,因此您可以从它开始,并根据需要覆盖它以获得更多的自定义功能,或者只实现您自己的蜘蛛。

除了从spider继承的属性(必须指定),这个类还支持一个新的属性:

rules

这是一个(或多个)列表 ​Rule​ 物体。各 ​Rule​ 定义对网站进行爬行的特定行为。规则对象如下所述。如果多个规则与同一链接匹配,则将根据在该属性中定义的顺序使用第一个规则。

这个蜘蛛还公开了一个可重写的方法:

parse_start_url(response**kwargs)

为spider中的url生成的每个响应调用此方法 start_urls 属性。它允许解析初始响应,并且必须返回 item object ,A ​Request​ 对象,或包含任何对象的iterable。

scrapy 2.3 蜘蛛爬取参数
scrapy 2.3 XMLFeedSpider
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

scrapy 2.3 链接提取器

scrapy 2.3 统计数据集合

scrapy 2.3 发送电子邮件

scrapy 2.3 蜘蛛合约

scrapy 2.3 如何部署蜘蛛

scrapy 2.3 AutoThrottle扩展

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }