使用嵌套数组进行Scrapy

Mit*_*ops 5 python json nested scrapy web-scraping

我是scrapy的新手,想了解如何抓取对象输出到嵌套的JSON中.现在,我正在制作看起来像的JSON

[
{'a' : 1, 
'b' : '2',
'c' : 3},
]
Run Code Online (Sandbox Code Playgroud)

而且我更喜欢这样:

[
{ 'a' : '1',
'_junk' : [
     'b' : 2,
     'c' : 3]},
]
Run Code Online (Sandbox Code Playgroud)

---我把一些东西放在_junk子场中后来进行后期处理.

我的解析器定义文件下的当前代码scrapername.py是......

item['a'] = x
item['b'] = y
item['c'] = z
Run Code Online (Sandbox Code Playgroud)

它看起来像

item['a'] = x
item['_junk']['b'] = y
item['_junk']['c'] = z
Run Code Online (Sandbox Code Playgroud)

---可能会解决这个问题,但我收到关于_junk密钥的错误:

  File "/usr/local/lib/python2.7/dist-packages/scrapy/item.py", line 49, in __getitem__
    return self._values[key]
exceptions.KeyError: '_junk'
Run Code Online (Sandbox Code Playgroud)

这是否意味着我需要改变我的items.py方式?目前我有:

class Website(Item):
    a = Field()
    _junk = Field()
    b = Field()
    c = Field()
Run Code Online (Sandbox Code Playgroud)

Mel*_*son 8

您需要在将项目存储到其中之前创建垃圾字典.

item['a'] = x
item['_junk'] = {}
item['_junk']['b'] = y
item['_junk']['c'] = z
Run Code Online (Sandbox Code Playgroud)