代码改变世界

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

  默默不语  阅读(41341)  评论(0编辑  收藏  举报

上篇博客提到了爬取动态数据,但是在构造request_url时,其中的url我用的浏览器的网址,但是经过运行发现,有时可以运行成功,有时

request_url = "http://tool.manmanbuy.com/history.aspx?DA=1&action=gethistory&url={0}&bjid=&spbh=&cxid=&zkid=&w=951&token={1}".format(url, token)
data = requests.get(request_url)
history_price = json.loads(data.text)['datePrice']

Traceback (most recent call last):
File “D:/spider/product.py”, line 4, in
res = json.loads(file.text)
File “C:\Users\DELL\AppData\Local\Programs\Python\Python37-32\lib\json_init_.py”, line 348, in loads
return _default_decoder.decode(s)
File “C:\Users\DELL\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py”, line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File “C:\Users\DELL\AppData\Local\Programs\Python\Python37-32\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)

 

会在第三行代码报错,也就是json.loads()位置。

原因:

  request_url不正确,使用浏览器中的网址作为url是不太规范的,所以我们尽量找到request_url中url部分的生成机制,构造出正确的request_url吧!

我在网页的源代码中,找到了url的生成机制,以及在div中找到了生成的url。

 

 

这样就能通过获取这个位置的url来构造request_url啦!

 

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2018-02-08 《需求工程 ——软件建模与分析》读书笔记01
2018-02-08 个人冲刺07
点击右上角即可分享
微信分享提示