python年报爬虫

img

JSONDecodeError: Extra data: line 1 column 2 (char 1),请问这个问题如何解决?

看看你的json里是否有非法字符或者中文

  • 你可以参考下这篇文章:Json错误JSONDecodeError: Extra data解决方案
  • 除此之外, 这篇博客: JSONDecodeError: Expecting value: line 1 column 1 (char 0)错误总结中的 爬虫时出现该错误 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 爬虫时出现错误,主要集中在这一行代码中:

    res = requests.get(url,headers=headers).json()
    

    即为读取url中内容用json表示
    错误信息如下(用的jupyter notebook):

    Y:\Anaconda\envs\python36\lib\site-packages\requests\models.py in json(self, **kwargs)
        898                     # used.
        899                     pass
    --> 900         return complexjson.loads(self.text, **kwargs)
        901 
        902     @property
    
    Y:\Anaconda\envs\python36\lib\json\__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
        352             parse_int is None and parse_float is None and
        353             parse_constant is None and object_pairs_hook is None and not kw):
    --> 354         return _default_decoder.decode(s)
        355     if cls is None:
        356         cls = JSONDecoder
    
    Y:\Anaconda\envs\python36\lib\json\decoder.py in decode(self, s, _w)
        337 
        338         """
    --> 339         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
        340         end = _w(s, end).end()
        341         if end != len(s):
    
    Y:\Anaconda\envs\python36\lib\json\decoder.py in raw_decode(self, s, idx)
        355             obj, end = self.scan_once(s, idx)
        356         except StopIteration as err:
    --> 357             raise JSONDecodeError("Expecting value", s, err.value) from None
        358         return obj, end
    
    JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    

    如果url传输的是json文件,格式不可能出现问题(排除普通错误情况)
    说明读取到内容不是json内容,有可能是返回的访问应答的错误信息error

    此时应更新一下headers中的cookies,有可能是上次请求过久,cookies发生改变

    更改后成功读取到json信息!!!