scrapy输出函数直接到google-dri

2024-06-02 08:44:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个破烂的代码,我想把它直接输出到我的Google驱动器上,我发现pydrive易于使用和上传文件(我测试了它,它工作了)

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

drive = GoogleDrive(gauth)

file2 = drive.CreateFile()
file2.SetContentFile('testing1.csv')
file2.Upload()

如何使用它与scrapy runspider test1.py -o test.csv直接上载到驱动器?在

如果不起作用,有什么建议吗?在


Tags: 文件csv代码fromimportauthgoogledrive
2条回答

您需要编写自定义pipelinefeed exporter。在

例如,如果爬虫程序很小,结果可以放入内存,而不是像这样的简单管道:

# myproject/pipelines.py

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

class GdrivePipeline:
    data = []

    def process_item(self, item, spider):
        data.append(item)
        return item

    def close_spider(self, spider):
        gauth = GoogleAuth()
        gauth.LocalWebserverAuth()

        drive = GoogleDrive(gauth)

        file2 = drive.CreateFile()
        # write self.data to file
        file2.Upload()

然后在您的设置中激活它:

^{pr2}$

它不是这样工作的,这里是如何运行刮伤蜘蛛没有 scrapy runspider test1.py, 你应该创建一个字典列表,然后把它们写入一个CSV文件,然后使用Google功能上传,如果你想删除你创建的文件。在

import scrapy 
from scrapy.crawler import CrawlerProcess
#Your Spider

if __name__ == "__main__":
    process = CrawlerProcess()
    process.crawl(NAME_OF_YOUR_SPIDER)
    spider = next(iter(process.crawlers)).spider
    process.start()
    #write to csv
    #upload to Google drive

相关问题 更多 >