让我们假设我已经使用此文件夹结构启动了一个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
时,效果很好,但是我有几个问题:
main.py
中的Pandas DataFrame,如何从main.py
访问数据?答案 0 :(得分:2)
您可以将管道用于https://docs.scrapy.org/en/latest/topics/item-pipeline.html
只需创建管道并将您的输出或处理插入process_item
对于“数据框”部分,您可以在open_spider
中创建/导入一个数据框,并将其分配给自变量以在Spider或process_item
中使用
使用管道要比将代码放在其他地方更好,因为管道就像缓冲区一样工作,假设您以100项/秒的速度抓取项目,并以10项/秒的速度处理项目,那么使用管道将不会减慢抓取速度,它宁可将您的报废项目排队在管道中。