【问题标题】:Scrapy appending Key: value pairs to another KeyScrapy 附加键:值对到另一个键
【发布时间】:2014-08-09 15:43:21
【问题描述】:

我正在尝试废弃以下地图坐标,我的坐标为 var Data = {lat: 45.000000, long : 68.00000}

我可以将上述数据项 'long':68.0000 和 'lat':45.0000 作为单独的项目废弃。

现在我如何按照 mongodb 的要求将它们放入新的密钥“loc”中

loc:{long: 68.000000, 'lat':45.0000} (我首先需要 long,然后是 lat 值,以便我可以将抓取的数据放入 mongodb )。

大家好

这是我的物品文件:

class Citylist(scrapy.Item):
    lng = scrapy.Field()
    lat = scrapy.Field()
    loc = scrapy.Filed()

这是我的蜘蛛文件:

for newlist in HtmlXPathSelector(response).select('/html/body'):  
    l = ItemLoader(item=Citylist(),response = response)
    l.add_xpath('lng', '//......text()')
    l.add_xpath('lat', '//......text()')
    yield l.load_item()

【问题讨论】:

    标签: python mongodb web-scraping scrapy


    【解决方案1】:

    get_output_value() 会给你提取的lnglat 的值,add_value() 会将值放入加载器:

    l.add_value('loc', {'lng': l.get_output_value('lng'), 
                        'lat': l.get_output_value('lat')})
    

    【讨论】:

    • 嗨,Alecxe,你摇滚!!!非常感谢它工作。但我仍然有一个问题。我需要lng,然后是lat。我认为它是按字母顺序调用值。什么可以在lat之前获得lng。请指教。谢谢。
    • @pjsuccess 字典是无序集合,没有保证顺序。
    • 那么有什么破解方法吗?或者我们如何才能让它们井然有序。 mongodb 需要这个命令。请指教
    • @pjsuccess 你确定 mongodb 需要这里的严格顺序吗?您能否详细说明并展示您如何将项目写入 mongodb?谢谢。 (这可能是一个单独的 SO 问题)
    猜你喜欢
    • 2023-01-09
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多