首页 > 解决方案 > 如何从我的 main.py 脚本访问我的 Spider 数据?

问题描述

假设我已经启动了一个具有以下文件夹结构的 Scrapy 项目:

.root
├── main.py
├── scrapy.cfg
├── app
│  ├── items.py
│  ├── middlewares.py
│  ├── pipelines.py
│  ├── settings.py
│  └── spiders
│     ├── my_spider.py

所以,在main.py文件中我有:

#!/usr/bin/env python
import scrapy
from app.spiders.my_spider import MySpider
from scrapy.crawler import CrawlerProcess
from scrapy.settings import Settings
from scrapy.utils.project import get_project_settings

process = CrawlerProcess(get_project_settings())
process.crawl(VultrSpider())
process.start()

当我在终端上运行时它工作正常./main.py,但我有几个问题:

标签: pythonpython-3.xscrapy

解决方案


您可以为此目的使用管道https://docs.scrapy.org/en/latest/topics/item-pipeline.html

只需创建一个管道并将您的输出或处理插入其中process_item

至于 Dataframes 部分,您可以在其中创建/导入一个数据框open_spider并将其分配给一个 self 变量,以便在蜘蛛或process_item

使用管道比将代码放在其他任何地方要好,因为管道就像缓冲区一样工作,假设您以 100 个项目/秒的速度抓取项目,并且您以 10 个项目/秒的速度处理项目,那么使用管道不会减慢完成抓取的速度,它'宁愿在管道中排队你刮掉的物品。


推荐阅读