网多云Scrapy爬虫

网多云Scrapy爬虫是什么

网多云的Scrapy爬虫基于Scrapy 1.5.1,高度兼容原生Scrapy,使用Python语言进行开发。
一个Scrapy爬虫的骨架如下:

import scrapy

class DataItem(scrapy.item.Item):
title = scrapy.Field()

class ShenjianSpider(scrapy.Spider):
name = "shenjian"
def start_requests(self):
yield scrapy.Request(url="http://www.wangduoyun.com", callback=self.parse)
def parse(self, response):
yield DataItem(title=scrapy.Selector(response).xpath("//title/text()").extract_first())

一个Scrapy爬虫至少要实现两个类,一个是scrapy.item.Item的子类,一个是scrapy.Spider的子类。

平台实现了什么

数据存储

平台实现了数据存储pipeline,会把数据存储在平台的数据库中,同时实现了基于数据本身的去重,开发者无需指定pipeline。

调度及去重

平台实现了scheduler,实现了链接的分布式调度以及去重,开发者无需考虑分布式运行的问题,以及链接去重的问题。

与原生Scrapy的差异

只支持Python3

平台目前只有Python3运行环境。

只支持单文件爬虫

一个Scrapy爬虫对应一个代码文件,暂不支持多文件的Scrapy爬虫。

必须自定义Item

代码中必须定义scrapy.item.Item的子类,暂不支持yield dict的方式

不支持自定义Item Pipeline

爬取的数据会自动存储到平台的数据库中,暂不支持自定义Item Pipeline,开发者可使用Webhook推送自动数据发布GraphQL接口与自己的系统进行对接。

不支持自定义Middleware

平台暂不支持自定义Middleware