爬虫报错simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

  • Post author:
  • Post category:其他


今天在爬取百度地图数据时,一开始是可以爬到数据的,但是没有爬完就出现了如下图的报错。

在这里插入图片描述

百度了好久,有以下几种说法:

  1. 请求过于频繁。那就加上sleep语句,隔几秒再提交请求。但是还是会报错。说明不是这个问题。
  2. 要使用双引号(””)代替单引号(’’)。也不是这个问题。
  3. json数据格式问题。因为爬到的数据有些不是json格式,所以报错。

    正解!

    我打印了get得到的结果,报错之前的是html文本格式,并不是json。不得不说,hj大佬太强了!解决方法是:构造get请求参数param,把不合格数据筛掉(大佬说就是这样写的,我。。。行吧)

    下面是关键部分:

    原来的报错代码:
url = url_base + '?' + 'address=' + address  + '&output=' + output + '&ak=' + ak 
res = requests.get(url)
temp = json.loads(res.text)
url = url_base
data = {
   'ak': ak,
   'address': address,
   'output': output
}
res = requests.get(url, headers=headers, params=data)  # 添加请求头
print(res.text)
temp = json.loads(res.text)

PS:呜呜呜,菜鸡落泪了,搞了好久,特意写下来学习一下。



版权声明:本文为ITmincherry原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。