python爬虫遇json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

虚拟生命互动世界 2020-01-13 03:56:33
这个问题,怎么办???求指教!!!!!
...全文
20315 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
古译汉书 2022-10-09
  • 打赏
  • 举报
回复
url = ("https://kyfw.12306.cn/otn/leftTicket/query?"
       "leftTicketDTO.train_date={}&"
       "leftTicketDTO.from_station={}&"
       "leftTicketDTO.to_station={}&"
       "purpose_codes=ADULT").format(date, from_stion, to_stion)
headers = {
    # Cookie 的值自行替换一下,可以通过打开浏览器开发者模式复制过来
    "Cookie": "_uab_collina=160395250285657341202147; JSESSIONID=7C56E896658518A4E5BF99889839D00C; _jc_save_wfdc_flag=dc; _jc_save_fromStation=%u5317%u4EAC%2CBJP; _jc_save_toStation=%u4E0A%u6D77%2CSHH; BIGipServerotn=1725497610.50210.0000; RAIL_EXPIRATION=1604632917257; RAIL_DEVICEID=DeBrCMshZyD9JIK2yazJV4op0oxRXXKpeio_Y27U75ZkWKFwOd6Q_i2JRVBJeN3Q9qQ7ybyTw4Vv3ImAEwdTAAh8XLXL6WGn3irR65rZyYeWtvToLkq8oVAprmAw6OPgPnqI9a9ItALNr0kFjzDkncjjGPINbqfa; BIGipServerpassport=770179338.50215.0000; route=c5c62a339e7744272a54643b3be5bf64; _jc_save_fromDate=2020-11-02; _jc_save_toDate=2020-11-01",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
}
requests.packages.urllib3.disable_warnings()    # 屏蔽 “InsecureRequestWarning” 警告
r = requests.get(url, headers=headers, verify=False)  # 通过 requests 模块获取页面信息,verify=False 参数表示不进行证书验证
r = r.content.decode(encoding='utf-8')
raw_trains = r.json()['data']['result']
print(raw_trains)

img

大哥么咋改啊

qq_41550995 2020-10-21
  • 打赏
  • 举报
回复 1
引用 25 楼 xixihaha200172 的回复:
楼主!请问一下我这个该怎么办!


引用 27 楼 qq_42059323 的回复:
请问楼主是怎么解决的,能告知一下吗


好像是字符串和json字符串的问题,两者key值参数相差个空格,字符串没办法转json,可以用eval函数,但是这个函数安全性差,可以用这个第三方库安装: pip install demjson使用: demjson.encode(data)
qq_42059323 2020-09-18
  • 打赏
  • 举报
回复
请问楼主是怎么解决的,能告知一下吗
斑马森林m 2020-09-04
  • 打赏
  • 举报
回复
终于找到一个有用的了
xixihaha200172 2020-05-31
  • 打赏
  • 举报
回复
楼主!请问一下我这个该怎么办!
dujintch 2020-02-03
  • 打赏
  • 举报
回复 1
引用 19 楼 摸鱼_摸鱼 的回复:
你少弄了个 cookies

import requests, random
from ulits import config

url = 'https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2020-01-13&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=CQW&purpose_codes=ADULT'

headers = {
    'User-Agent': random.choice(config.USER_AGENT_POOL),
    'Cookie': 'JSESSIONID=B709F9775E72BDED99B2EEBB8CA7FBB9; BIGipServerotn=1910046986.24610.0000; RAIL_EXPIRATION=1579188884851; RAIL_DEVIC'
}

res = requests.get(url=url, headers=headers)
res_info = res.json()
print(res_info)
大神,你的回复解决了我一晚上的困扰!非常感谢! 还想进一步探讨一下,视频教程里老师的源程序确实没有定义cookies。实际上,lz给的url返回错误页面是因为日期过期了,比如我02-03回帖,url里的查询日期改成02-04以后就可以在浏览器里看到json格式的数据。但是在python里用request.get(url)所得的response.text是.html文件而非json,所以response.json()就会报错。请问这个可能是哪里的原因?
摸鱼_摸鱼 2020-01-13
  • 打赏
  • 举报
回复
好吧。。。。。
  • 打赏
  • 举报
回复
引用 21 楼 摸鱼_摸鱼的回复:
他网页里带了个cookies 传过去 才行 ,你看的那个视频没带cookies吗?
视频里没有显示(。ò ∀ ó。)
摸鱼_摸鱼 2020-01-13
  • 打赏
  • 举报
回复
他网页里带了个cookies 传过去 才行 ,你看的那个视频没带cookies吗?
  • 打赏
  • 举报
回复
引用 18 楼 摸鱼_摸鱼的回复:
我这边都不能打开 你直接打印 response.text 看他的内容是不是一个网页就知道了
可是,,那个视频里的真的打开了
摸鱼_摸鱼 2020-01-13
  • 打赏
  • 举报
回复
你少弄了个 cookies

import requests, random
from ulits import config

url = 'https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2020-01-13&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=CQW&purpose_codes=ADULT'

headers = {
    'User-Agent': random.choice(config.USER_AGENT_POOL),
    'Cookie': 'JSESSIONID=B709F9775E72BDED99B2EEBB8CA7FBB9; BIGipServerotn=1910046986.24610.0000; RAIL_EXPIRATION=1579188884851; RAIL_DEVIC'
}

res = requests.get(url=url, headers=headers)
res_info = res.json()
print(res_info)
摸鱼_摸鱼 2020-01-13
  • 打赏
  • 举报
回复
我这边都不能打开 你直接打印 response.text 看他的内容是不是一个网页就知道了
  • 打赏
  • 举报
回复
引用 14 楼 摸鱼_摸鱼的回复:
你请求的 url 有问题,直接就返回了一个 html 了,而不是 json格式的数据
火狐浏览器可以打开的!那个视频就是用火狐
  • 打赏
  • 举报
回复
引用 14 楼 摸鱼_摸鱼的回复:
你请求的 url 有问题,直接就返回了一个 html 了,而不是 json格式的数据
火狐浏览器可以打开的!那个视频就是用火狐
  • 打赏
  • 举报
回复
引用 14 楼 摸鱼_摸鱼的回复:
你请求的 url 有问题,直接就返回了一个 html 了,而不是 json格式的数据
火狐浏览器可以打开的!那个视频讲解人就是用火狐
摸鱼_摸鱼 2020-01-13
  • 打赏
  • 举报
回复
你请求的 url 有问题,直接就返回了一个 html 了,而不是 json格式的数据
  • 打赏
  • 举报
回复
引用 10 楼 摸鱼_摸鱼的回复:
你是想获取那个页面? 直接

res_html = res.content.decode(encoding='utf-8')
# 或者
res_html - res.text

print(res_html)
不是。开头那两张图,我是看那本从入门到精通的pythob视频学的,但那个人打的代码就没有出错,我的就报错了,也是第一张图那样打的代码的,但是运行的时候他的没有出错,我的就报错了
  • 打赏
  • 举报
回复
引用 10 楼 摸鱼_摸鱼的回复:
你是想获取那个页面? 直接

res_html = res.content.decode(encoding='utf-8')
# 或者
res_html - res.text

print(res_html)
不是。。开头那两张图,我是看那本从入门到精通的pythob视频学的,但那个人打的代码就没有出错,我的就报错了,也是第一张图那样打的代码的,但是运行的时候他的没有出错,我的就报错了
  • 打赏
  • 举报
回复
引用 10 楼 摸鱼_摸鱼的回复:
你是想获取那个页面? 直接

res_html = res.content.decode(encoding='utf-8')
# 或者
res_html - res.text

print(res_html)
不是。。开头那两张图,我是看那本从入门到精通的pythob视频学的,但那个人打的代码就没有出错,我的就报错了,也是第一张图那样打的代码的,但是运行的时候他的没有出错,我的就报错了
摸鱼_摸鱼 2020-01-13
  • 打赏
  • 举报
回复
你是想获取那个页面? 直接

res_html = res.content.decode(encoding='utf-8')
# 或者
res_html - res.text

print(res_html)
加载更多回复(9)

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧