python - Scrapy构建JSON字典:“TypeError:只能将str(不是“set”)连接到str”
问题描述
我在 tomtom 实时流量数据上出于学术目的执行下面的蜘蛛。数据是从像这样的底层 JSON 中检索的:https ://api.midway.tomtom.com/ranking/live/ITA_milan
我想爬几个城市并创建一个字典,如:
{'阿姆斯特丹': {'var1': value1, 'var2': value2}, '布鲁塞尔': {'var1', value1 (...)}}
到目前为止,这是我的蜘蛛,它给了我
TypeError:只能将str(不是“set”)连接到str
我该怎么做才能在字典中获得所需的结构?不幸的是,我不断地回到那些基本问题。我仍在从头开始学习python。干杯马塞洛
# -*- coding: utf-8 -*-
import scrapy
import json
import requests
import datetime
from scrapy.spiders import Spider
data = {}
class TomSpiderSpider(scrapy.Spider):
name = 'tom_spider'
allowed_domains = ['tomtom.com']
start_urls = ['https://api.midway.tomtom.com/ranking/live/']
def start_requests(self):
data['city'] = {'FRA_paris', 'london-traffic', 'berlin-traffic', 'amsterdam-traffic', 'brussels-traffic',
'frankfurt-am-main-traffic'}
url = 'https://api.midway.tomtom.com/ranking/live/' + data['city']
yield scrapy.Request(url=url, callback=self.parse, meta = {'item': data})
def parse(self, response):
jsonresponse = json.loads(response.body_as_unicode())
data = response.meta['item']
data["content"] = jsonresponse["data"]
yield data