genpic 发表于 2021-4-25 12:21

这种问题是Python程序的问题还是代码的问题?

论坛的茅台程序运行一直很正常,突然就报这个错误了,小白不太懂,看提示应该是爬虫报错吧?
Traceback (most recent call last):
File "F:\jd_maotai_seckill-master\main.py", line 23, in <module>
    jd_seckill = JdSeckill()
File "F:\jd_maotai_seckill-master\jd_spider_requests.py", line 278, in __init__
    self.timers = Timer()
File "F:\jd_maotai_seckill-master\timer.py", line 24, in __init__
    self.diff_time = self.local_jd_time_diff()
File "F:\jd_maotai_seckill-master\timer.py", line 48, in local_jd_time_diff
    return self.local_time() - self.jd_time()
File "F:\jd_maotai_seckill-master\timer.py", line 33, in jd_time
    js = json.loads(ret)
File "C:\Users\dhs\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
File "C:\Users\dhs\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\dhs\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

wxbb979 发表于 2021-4-25 12:27

小白也不懂

grekevin 发表于 2021-4-25 12:36

这是好像是Json解析数据出错,解析的数据好像不满足JSON要求的格式

grekevin 发表于 2021-4-25 12:37

你把ret输出到控制台看看具体是什么数据

warner 发表于 2021-4-25 12:47

json.loads(ret)这段代码的问题,意思是字符串转json解析出错,你打印下ret是什么东西

Kum 发表于 2021-4-25 13:03

盲猜是因为之前抓的接口的数据迭代了。之前的爬虫自然就不能用了。

Rezalt 发表于 2021-4-25 13:50

是返回的数据发生了变化导致程序报错。ret是非标准化的json字符串,json.loads无法转换所以报错

ReLoading 发表于 2021-4-25 14:14

猜得不错的话,应该是 http请求正常返回的是json,结果现在返回的是 404 或者其他错误,格式不是json,自己调试一下就知道了

fanai 发表于 2021-4-25 14:15

json格式的问题 如果你的json格式正常的话,大概率是你的引号不对 python json.loads 支持的字符串中的引号必须是双引号   

推荐使用demjson 这个兼容性好些

gentlespider 发表于 2021-4-25 14:37

第33行报错了,因为响应的数据ret不是json格式的字符串。你可以打印下ret试试,然后报错了看下打印的是什么,到对应的url看下是否响应正确。
页: [1] 2
查看完整版本: 这种问题是Python程序的问题还是代码的问题?