项目场景:

python关于爬取豆瓣电影排行榜的练习


问题描述:


数据传输过程中数据总是提示下方的错误

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

原因分析:

出现这类问题刚开始我也找了很多大佬发的文章,后来才发现竟然出现在这个位置

错误原代码

 


import  requests
import  json

url = 'https://movie.douban.com/typerank'
#设置参数
param = {
    'type': '24',
    'interval_id': '100:90',
    'action':'',
    'start': '1',  #从哪个位置开始取
    'limit': '20'  #一次取多少
}
#UA伪装
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'
}

response = requests.get(url=url,params=param,headers=headers)

#获取响应数据
list_data = response.json()
#持久化存储

fp = open('./douban.json','w',encoding='utf-8')
json.dump(list_data,fp=fp,ensure_ascii=False)

运行提示:

软件一直提醒我是json数据在第一行第一列少了某种东西,反复查找后才弄清楚原来我犯了一个特别简单的错误。

python爬取网页一部分代码时,传入url的不再是网站的网址,而应该是network下的request URL内容。


解决方案:

方法如下:

以下高光部分需在写代码时着重了解,且传入url的网址为Request URL后面的内容,注意关注Request Method后方是GET还是POST请求哦

正确代码:



import  requests
import  json

url = ' https://movie.douban.com/j/chart/top_list'

#设置参数
param = {
    'type': '24',
    'interval_id': '100:90',
    'action':'',
    'start': '1',  #从哪个位置开始取
    'limit': '20'  #一次取多少
}
#UA伪装
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'
}

response = requests.get(url=url,params=param,headers=headers)

#获取响应数据
list_data = response.json()
#持久化存储

fp = open('./douban.json','w',encoding='utf-8')
json.dump(list_data,fp=fp,ensure_ascii=False)

好啦,学废了没

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 3 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐