这是我的基本抓取工具:
def parse(self, response):
item = CruiseItem()
item['Cruise'] = {}
item['Cruise']['Cruiseline'] = response.xpath('//title/text()').extract()
item['Cruise']['Itinerary'] = response.xpath('//*[@id="brochureName1"]/text()').extract()
item['Cruise']['Price'] = response.xpath('//*[@id="interiorPrice1"]/text()').extract()
item['Cruise']['PerNight'] = response.xpath('//*[@id="perNightinteriorPrice1"]/text()').extract()
return item
这很好地吸收了我想要的所有元素。例如,我的json提要如下所示:
^{pr2}$但是,目标json输出是不同的:
[
{
"Cruise": {
"Cruiseline": [
"Ship Name"
],
"Itinerary": [
"3 Night Bahamas "
],
"Price": [
"$169"
],
"PerNight": [
"$56/night"
]
},
"Cruise": {
"Cruiseline": [
"Ship Name"
],
"Itinerary": [
"4 Night Bahamas "
],
"Price": [
"$79"
],
"PerNight": [
"$86/night"
]
}
}
]
基本上,我想返回每艘邮轮,每艘船,行程,价格和每晚。在
这有道理吗?很乐意讨论
编辑:几天前问过这个问题,但决定澄清并重新发布。谢谢!
明白了。在
请尝试使用此脚本重新格式化数据。格式化数据将保存在
updated_list
一些其他的想法
如果json中存储的只有cruise对象,那么
Cruise
的初始键有点多余很多时候,你在数组中存储不需要的东西。我猜这是一个棘手的问题,但您应该尝试修改一下我的脚本,以删除单数值的数组。E、 g.一个巡航对象不应该有多个
Cruiseline
。如果你需要帮助,请告诉我。相关问题 更多 >
编程相关推荐