首页 > 解决方案 > 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

标签: pythonscrapy

解决方案


推荐阅读