V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
studyaa
V2EX  ›  问与答

请教一下 scrapy 爬取数据不完整的问题

  •  1
     
  •   studyaa · 2019-07-06 14:17:44 +08:00 · 2363 次点击
    这是一个创建于 1995 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题:爬取所获取到的数据是 json 格式的,但是每次爬取都会有几个链接获取到的 json 是不完整的,只获取到了一半左右,代码就会报一个这样的错(Unterminated string starting at: line 1 column 13042 (char 13041)).我就尝试把这报错的几个链接单独抓取,就不会出现这种不完整数据的情况.好奇怪. 发这部分链接的代码:

    yield scrapy.Request(
                        url='http://www.lzxxxx.com/wspsp/wxs/find_FjztByClh?msg=%s&%s' % (int(round(time.time() * 1000)), href),#拼接的 url
                        callback=self.roomstate_item,
                        headers={'Referer': 'http://www.lzxxxx.com/wspsp/web/swb/list-xmxx.jsp'}#需要这个 referer 否则直接异常访问
                    )
    
     def roomstate_item(self, response):
    	try:
    	    j = json.loads(response.text)
    	    r_list = j.get('rows')
    	    for r in r_list:
    		roomstateitem = RoomStateItem()
    		roomstateitem['F1'] = r.get('zts')
    		roomstateitem['roomid'] = r.get('id')
    		yield roomstateitem
    	except Exception as e:
    	    self.logger.info(e)
    	    self.logger.info(response.url)
    	    self.logger.info(response.text)
    	    with open('bbb.txt','w') as f:
    		f.write(response.text)
    

    这是拿到的不完整数据有头没尾的(太多了删了一部分中间的数据,都是这格式):

    {"rows":[{"zts":"不可售","id":"B9E8973CD11F4F93B61619FA4221451C","fwbm":"2501201703203002-101"},{"zts":"可售","id":"34D2AC4934BA49C6A22922EC255F521D","fwbm":"2501201703203002101"},{"zts":"已售","id":"911BAA3C7FFF4FC0B751E0A3A10EF266","fwbm":"2501201703203002102"},{"zts":"已售","id":"0F9DC02CC0DB419188525A844D8D0AE0","fwbm":"2501201703203002705"},{"zts":"已售","id":"B06CF
    

    希望给点可用的建议

    2 条回复    2019-07-08 16:24:36 +08:00
    qianyin123
        1
    qianyin123  
       2019-07-08 11:27:24 +08:00
    多粘点报错代码
    studyaa
        2
    studyaa  
    OP
       2019-07-08 16:24:36 +08:00
    @qianyin123 json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 13042 (char 13041)就这个错啊 json 数据不完整导致的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2793 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:56 · PVG 21:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.