为Scrapy项目提供多个Spider

简介: 为Scrapy项目提供多个Spider scrapy startproject project name 在终端输入上述命令后,会根据生成一个完整的爬虫项目 此时的项目树如下 |-- JobCrawler |-- __init__.
+关注继续查看

为Scrapy项目提供多个Spider

scrapy startproject project name

在终端输入上述命令后,会根据生成一个完整的爬虫项目
此时的项目树如下

|-- JobCrawler
    |-- __init__.py
    |-- items.py
    |-- middlewares.py
    |-- pipelines.py
    |-- settings.py
    `-- spiders
        |-- __init__.py
        |-- spider.py
    scrapy.cfg

可以看到默认会生成一个名为spider.py的文件供我们编写spider.

如果这个时候我们要再写多一个spider, 但是不想手动去配置相应的文件, 可以用以下命令生成一个spider

# domain 域名
scrapy genspider [options] name domain

options可以选择自己需要的参数, 若留空, 则默认使用basic模板生成spider

这里我们以要爬取某网站首页入口为例, 生成一个entrancespider.
Scrapy会为我们在spiders文件夹中生成一个entrance.py. 根据需要, 再item.py中添加相应的字段.

为每个Spider单独指定Pipeline

当我们编写完代码后可能会遇到一个问题, 在我们准备使用这个新的spider爬虫的时候, 并不准备让以前spiderpipeline应用到新的spider身上.

一种笨的方法是, 你在用某个spider的时候, 先注释掉无关的pipeline设置(在settings.py中). 然而这并非长久之计, 且十分反程序猿, 何况后面我们还要考虑到多个spider并发的情况.

在看了一下spider的变量之后, 显然(逃, 我们可以用spidername值来轻松指定.

在我们pipeline.py中, 为需要区分spider的方法添加一个spider参数, 主要是process_item(self, item, spider), close_spider(self, spider) 以及 open_spider(self, spider), 写一行if就搞定啦

if spider.name == 'jobCrawler':

后面再更新多个并发的情形

目录
相关文章
|
数据采集 Python
配置Pycharm的Scrapy爬虫Spider子类通用模板
配置Pycharm的Scrapy爬虫Spider子类通用模板
141 0
|
数据采集 Python
Python爬虫:scrapy框架Spider类参数设置
Python爬虫:scrapy框架Spider类参数设置
Python爬虫:scrapy框架Spider类参数设置
|
数据采集 Python
Python爬虫:scrapy框架Spider类参数设置
Python爬虫:scrapy框架Spider类参数设置
141 0
|
数据采集 Python
Python爬虫入门教程 39-100 天津市科技计划项目成果库数据抓取 scrapy
爬前叨叨 缘由 今天本来没有打算抓取这个网站的,无意中看到某个微信群有人问了一嘴这个网站,想看一下有什么特别复杂的地方,一顿操作下来,发现这个网站除了卡慢,经常自己宕机以外,好像还真没有什么特殊的..
728 0
|
数据采集 NoSQL 调度
scrapy分布式Spider源码分析及实现过程
分布式框架scrapy_redis实现了一套完整的组件,其中也实现了spider,RedisSpider是在继承原scrapy的Spider的基础上略有改动,初始URL不在从start_urls列表中读取,而是从redis起始队列中读取。
998 0
|
数据采集 Python
手把手教你如何新建scrapy爬虫框架的第一个项目(下)
前几天小编带大家学会了如何新建scrapy爬虫框架的第一个项目(上),今天我们进一步深入的了解Scrapy爬虫项目创建,这里以伯乐在线网站的所有文章页为例进行说明。 在我们创建好Scrapy爬虫项目之后,会得到上图中的提示,大意是让我们直接根据模板进行创建Scrapy项目。
1191 0
|
数据采集 Python Windows
手把手教你如何新建scrapy爬虫框架的第一个项目(上)
前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy还有Scrapy安装过程中常见的问题总结及其对应的解决方法感兴趣的小伙伴可以戳链接进去查看。关于Scrapy的介绍之前也在文章中提及过今天小编带大家进入Scrapy爬虫框架创建Scrapy爬虫框架的第一个项目具体过程如下所示。
3086 0
Scrapy框架的使用之Spider的用法
在Scrapy中,要抓取网站的链接配置、抓取逻辑、解析逻辑里其实都是在Spider中配置的。在前一节实例中,我们发现抓取逻辑也是在Spider中完成的。本节我们就来专门了解一下Spider的基本用法。
|
NoSQL 测试技术 Redis
在阿里云服务器使用scrapyd部署scrapy项目
前言 分布式爬虫,总归是要上到服务器的。 这里先讲解如何在服务器上配置和部署scrapyd,主要的点还是在scrapyd和redis的conf配置文件上。
3292 0
|
Python
Scrapy框架的使用之Spider的用法
在Scrapy中,要抓取网站的链接配置、抓取逻辑、解析逻辑里其实都是在Spider中配置的。在前一节实例中,我们发现抓取逻辑也是在Spider中完成的。本节我们就来专门了解一下Spider的基本用法。
13750 0
相关产品
云迁移中心
推荐文章
更多