为Scrapy项目提供多个Spider

简介: 为Scrapy项目提供多个Spiderscrapy 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':

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

目录
相关文章
|
6月前
|
数据采集 数据库 Python
为什么基于 Django 和 Scrapy 的项目需要 @sync_to_async 装饰器
通过使用 @sync_to_async 装饰器,我们可以在 Scrapy 的异步环境中高效地调用同步的 Django ORM 操作。这样可以避免阻塞事件循环,充分利用 Scrapy 的异步 I/O 优势,从而提升爬虫的性能和并发处理能力。在构建基于 Django 和 Scrapy 的项目时,理解并正确使用 @sync_to_async 是非常重要的,这将帮助你构建高效、健壮的应用程序。
|
7月前
|
数据采集 前端开发 中间件
python-scrapy框架(一)Spider文件夹的用法讲解
python-scrapy框架(一)Spider文件夹的用法讲解
149 0
|
7月前
|
数据采集 Web App开发 搜索推荐
项目配置之道:优化Scrapy参数提升爬虫效率
项目配置之道:优化Scrapy参数提升爬虫效率
|
数据采集 XML 存储
构建一个简单的电影信息爬虫项目:使用Scrapy从豆瓣电影网站爬取数据
这个案例展示了如何使用 Scrapy 框架构建一个简单的爬虫项目,从网页中提取数据并保存到文件中。通过配置、编写爬虫代码、定义数据模型和数据处理管道,你可以灵活地构建各种爬虫应用。
324 0
构建一个简单的电影信息爬虫项目:使用Scrapy从豆瓣电影网站爬取数据
|
数据采集 数据可视化 应用服务中间件
Python爬虫:scrapy从项目创建到部署可视化定时任务运行
Python爬虫:scrapy从项目创建到部署可视化定时任务运行
618 0
Python爬虫:scrapy从项目创建到部署可视化定时任务运行
|
数据采集 前端开发 数据可视化
spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
704 0
spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
|
数据采集 Python
Python爬虫:scrapy框架Spider类参数设置
Python爬虫:scrapy框架Spider类参数设置
146 0
Python爬虫:scrapy框架Spider类参数设置
|
数据采集 Python
配置Pycharm的Scrapy爬虫Spider子类通用模板
配置Pycharm的Scrapy爬虫Spider子类通用模板
247 0
|
数据采集 Python
Python爬虫:scrapy框架Spider类参数设置
Python爬虫:scrapy框架Spider类参数设置
216 0
|
数据采集 Python Windows
手把手教你如何新建scrapy爬虫框架的第一个项目(上)
前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy还有Scrapy安装过程中常见的问题总结及其对应的解决方法感兴趣的小伙伴可以戳链接进去查看。关于Scrapy的介绍之前也在文章中提及过今天小编带大家进入Scrapy爬虫框架创建Scrapy爬虫框架的第一个项目具体过程如下所示。
3216 0