鱼C论坛

 找回密码
 立即注册
查看: 8005|回复: 11

[已解决]python 发送 get 请求 获取json 数据 返回错误

[复制链接]
发表于 2019-4-17 09:11:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. # coding: utf-8
  2. import requests



  3. if __name__ == '__main__':
  4.     # url: https://www.ximalaya.com/yinyue/264535/3056146
  5.     response = requests.get("https://www.ximalaya.com/revision/play/album?albumId=264535&pageNum=1&sort=0&pageSize=30")
  6.     print(response.json())
  7.    
复制代码



错误信息:

'''
e:\>python ex25.py
Traceback (most recent call last):
  File "ex25.py", line 8, in <module>
    print(response.json())
  File "C:\Python3\lib\site-packages\requests\models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "C:\Python3\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "C:\Python3\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python3\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)
'''
最佳答案
2019-4-17 10:37:05
wp231957 发表于 2019-4-17 10:26
是我哪里写错了吗
这个header 是从ximalaya复制过来的

你看headers是字典格式吧,,你需要{}
  1. header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-17 09:47:43 | 显示全部楼层
你需要添加headers参数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-17 09:59:45 | 显示全部楼层
mongoole 发表于 2019-4-17 09:47
你需要添加headers参数

这个要我们自己伪造的头 还是网站的头
我看网站的头 老多内容了

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Cookie: x_xmly_traffic=utm_source%253A%2526utm_medium%253A%2526utm_campaign%253A%2526utm_content%253A%2526utm_term%253A%2526utm_from%253A; device_id=xm_1555466292976_jukkgwz5hb6s7f; Hm_lvt_4a7d8ec50cfd6af753c4f8aee3425070=1555460778,1555466296; Hm_lpvt_4a7d8ec50cfd6af753c4f8aee3425070=1555466296
Host: www.ximalaya.com
Referer: https://www.ximalaya.com/yinyue/264535/3056146
User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-17 10:02:26 | 显示全部楼层
第9行的那种写法我第一次见,
如果是我我会把第9行改成:
print(json.loads(response.text))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-17 10:06:39 | 显示全部楼层
mongoole 发表于 2019-4-17 09:47
你需要添加headers参数

刚才发个回复 又被送拘留所了
我的意思是,headers  是自己伪造的 还是用网站的  网站的内容很多  都需要吗  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-17 10:10:05 | 显示全部楼层
cwhsmile 发表于 2019-4-17 10:02
第9行的那种写法我第一次见,
如果是我我会把第9行改成:
print(json.loads(response.text))

没啥区别,错误信息都是一样的  我就不贴了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-17 10:15:39 | 显示全部楼层
wp231957 发表于 2019-4-17 10:10
没啥区别,错误信息都是一样的  我就不贴了

刚我测试了一下,确实是headers的原因,没有添加会被服务器拒绝。
我是在浏览器上先打开一下,然后用的浏览器里面的headers。
成功输出了。

哈哈,又学了一个新技能response.json()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-17 10:15:49 | 显示全部楼层
wp231957 发表于 2019-4-17 10:06
刚才发个回复 又被送拘留所了
我的意思是,headers  是自己伪造的 还是用网站的  网站的内容很多  都需 ...

就是伪装成浏览器。都用网站的,一般添加"user-agent"就可以。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-17 10:26:13 | 显示全部楼层
mongoole 发表于 2019-4-17 10:15
就是伪装成浏览器。都用网站的,一般添加"user-agent"就可以。

是我哪里写错了吗
这个header 是从ximalaya复制过来的

  1. # coding: utf-8
  2. import requests


  3. if __name__ == '__main__':
  4.     # url: https://www.ximalaya.com/yinyue/264535/3056146
  5.     header = 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
  6.     response = requests.get("https://www.ximalaya.com/revision/play/album?albumId=264535&pageNum=1&sort=0&pageSize=30",header=header)
  7.     print(response.text.json())
  8.    
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-17 10:26:58 | 显示全部楼层
mongoole 发表于 2019-4-17 10:15
就是伪装成浏览器。都用网站的,一般添加"user-agent"就可以。

# coding: utf-8
import requests


if __name__ == '__main__':
    # url: https://www.ximalaya.com/yinyue/264535/3056146
    header = 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
    response = requests.get("https://www.ximalaya.com/revision/play/album?albumId=264535&pageNum=1&sort=0&pageSize=30",header=header)
    print(response.text.json())
   
   
   e:\>python ex25.py
Traceback (most recent call last):
  File "ex25.py", line 8, in <module>
    response = requests.get("https://www.ximalaya.com/revision/play/album?albumId=264535&pageNum=1&sort=0&pageSize=30",header=header)
  File "C:\Python3\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python3\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
TypeError: request() got an unexpected keyword argument 'header'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-17 10:37:05 | 显示全部楼层    本楼为最佳答案   
wp231957 发表于 2019-4-17 10:26
是我哪里写错了吗
这个header 是从ximalaya复制过来的

你看headers是字典格式吧,,你需要{}
  1. header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-17 10:54:08 | 显示全部楼层
mongoole 发表于 2019-4-17 10:37
你看headers是字典格式吧,,你需要{}

麻烦再帮我看看  我最后的代码 对不对呢
字典套字典 套了N重啊

  1. # coding: utf-8
  2. import requests


  3. if __name__ == '__main__':
  4.     # url: https://www.ximalaya.com/yinyue/264535/3056146
  5.     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
  6.     response = requests.get("https://www.ximalaya.com/revision/play/album?albumId=264535&pageNum=1&sort=0&pageSize=30",headers=headers)
  7.     print(response.json()['data']['tracksAudioPlay'][0]['src'])
  8.     #e:\>python ex25.py
  9.     #    http://audio.xmcdn.com/group7/M09/2A/20/wKgDX1WF-3PRQyRpABUffx8IpmI321.m4a
  10.   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-18 11:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表