让Scrapy的Spider更通用】的更多相关文章

1,引言 <Scrapy的架构初探>一文所讲的Spider是整个架构中最定制化的一个部件,Spider负责把网页内容提取出来,而不同数据采集目标的内容结构不一样,几乎需要为每一类网页都做定制.我们有个设想:是否能做一个比较通用的Spider,把定制部分再进一步隔离出去? GooSeeker网络爬虫平台有一个爬虫群模式,从技术实现层面来考察的话,其实就是把爬虫软件做成一个被动接受任务的执行单元,给他什么任务他就做什么任务,也就是说同一个执行单元可以爬多种不同的网站.而分配任务的是GooSeeke…
# -*- coding:utf-8 -*- ''' Created on 2015年10月22日 (1.1) 例子来源: http://scrapy-chs.readthedocs.org/zh_CN/latest/intro/tutorial.html ''' import scrapy # 去掉 s 在PyDev中不报错, 但是无法运行.如果加上 s 虽然报错,但是程序能正常运行. # 可以在 PyDev 中使用 " # @UndefinedVariable "来压制错误提示.…
scrapy - 给scrapy 的spider 传值 方法一: 在命令行用crawl控制spider爬取的时候,加上-a选项,例如: scrapy crawl myspider -a category=electronics 然后在spider里这样写: import scrapy class MySpider(scrapy.Spider): name = 'myspider' def __init__(self, category=None, *args, **kwargs): super(…
分布式框架scrapy_redis实现了一套完整的组件,其中也实现了spider,RedisSpider是在继承原scrapy的Spider的基础上略有改动,初始URL不在从start_urls列表中读取,而是从redis起始队列中读取. scrapy_redis源码在scrapy.redis.spider中,不仅实现了RedisSpider(分布式爬虫)还实现了RedisCrawlSpider(分布式深度爬虫)的逻辑,不过二者很多方法是一致的. 源码如下: from scrapy import…
当一个Scrapy项目中有多个spider去爬取多个网站时,往往需要多个pipeline,这时就需要为每个spider指定其对应的pipeline. [通过程序来运行spider],可以通过修改配置settings的ITEM_PIPELINES只有1个当前运行的spider的pipeline,然后加载配置并运行spider: settings = get_project_settings() settings.set('ITEM_PIPELINES', {'MyPipeline':1}, 20)…
目录 1.目标 2.方法1:通过Spider爬取 3. 通过CrawlSpider爬取 1.目标 http://wz.sun0769.com/index.php/question/questionType?type=4&page= 爬取每个页面链接的内部内容和投诉信息 2.方法1:通过Spider爬取 # -*- coding: utf-8 -*- import scrapy from dongguanSpider.items import DongguanItem class SunSpide…
目录 1. Spider 2.Scrapy源代码 2.1. Scrapy主要属性和方法 3.parse()方法的工作机制 1. Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方. class scrapy.Spider是最基本的类,所有编写的爬虫必须继承这个类. 主要用到的函数及调用顺序为: init() :…
scrapy中的spider的用法 : 1.scrapy命令行可以传参数给构造器 scrapy crawl myspider -a category=electronics 构造器接收传入的参数 import scrapy class MySpider(Spider): name = 'myspider' def __init__(self, category=None, *args, **kwargs): super(MySpider, self).__init__(*args, **kwar…
Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方. class scrapy.Spider是最基本的类,所有编写的爬虫必须继承这个类. 主要用到的函数及调用顺序为: __init__() : 初始化爬虫名字和start_urls列表 start_requests() 调用make_requests_from u…
Scrapy shell 用来调试Scrapy 项目代码的 命令行工具,启动的时候预定义了Scrapy的一些对象 设置 shell Scrapy 的shell是基于运行环境中的python 解释器shell 本质上就是通过命令调用shell,并在启动的时候预定义需要使用的对象 scrapy允许通过在项目配置文件”scrapy.cfg”中进行配置来指定解释器shell,例如: [settings] shell = ipython 启动 shell 启动Scrapy shell的命令语法格式:scr…