使用scrapy,gspread将CSV文件插入Google电子表格

时间:2018-08-18 11:50:05

标签: python csv scrapy google-sheets-api

我想将从网站抓取的csv数据插入到Google电子表格中。抓取部分并将google电子表格与python代码连接起来。但是,我无法通过gspread使用import_csv方法将csv数据插入工作表中。 https://gspread.readthedocs.io/en/latest/#

在gspread_connect.py中

import gspread
from oauth2client.service_account import ServiceAccountCredentials

def save_to_gsheet(data):
    scope = ['https://spreadsheets.google.com/feeds',
             'https://www.googleapis.com/auth/drive']

    credentials = ServiceAccountCredentials.from_json_keyfile_name('scrapingTraicy-57f3281cf682.json', scope)
    google_client = gspread.authorize(credentials)
    google_client.import_csv('1arQR2I_933DNrL7Lc034Ogu2Q2TOkOwEd61Lv-LdlbA', data)

我需要将1,2、3、4之类的csv数据传递给import_csv方法。因此,我尝试在piplines.py中使用pandas.read_csv(),如下所示

从刮y的进口信号 从scrapy.contrib.exporter导入CsvItemExporter 从gspread_connect导入save_to_gsheet 将熊猫作为pd导入

class SalesPipeline(object):
    @classmethod
    def from_crawler(cls, crawler):
        pipeline = cls()
        crawler.signals.connect(pipeline.spider_opened, signals.spider_opened)
        crawler.signals.connect(pipeline.spider_closed, signals.spider_closed)
        return pipeline

    def spider_opened(self, spider):
        self.file = open('output.csv', 'w+b')
        self.exporter = CsvItemExporter(self.file)
        self.exporter.start_exporting()

    def spider_closed(self, spider):
        self.exporter.finish_exporting()
        self.file.close()


    def process_item(self, item, spider):
        self.exporter.export_item(item)
        data = pd.read_csv('./output.csv')
        save_to_gsheet(data)
        return item

我得到这个错误No columns to parse from file并且我不知道为什么会发生这种情况,因为我的数据实际上在那里。就像

セール名,価格,期間,リンク先
バンクーバー 5日間,"69,800円",2018年11月1日~2018年12月20日出発,https://www.ana.co.jp/inttour/booking/csm/search/ISCP3100/init?callerDivision=1&outwardDeptName=TYO&destCode=YVR&outwardDeptDate=20181101&returnDeptDate=20181104&cabinClass=0&personNumOne=2&adultNumOne=2&childNumOne=0&childNoBedNumOne=0&infantNumOne=0&wayCode=03&countryCode=CA

运行蜘蛛后,如何将csv文件插入Google电子表格?

这是我的密码https://github.com/Cody1009/scraping_ana/tree/master

0 个答案:

没有答案