项目场景:

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)

好啦,学废了没

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐