我想将从网站抓取的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电子表格?