Python爬取页面数据TypeError: list indices must be integers or slices, not str 出错? 30
data_list = data['data']['response']['results']['content']
for data1 in data_list:try:video_title = data1['title'] +'.mp4' # 视频文件名video_url = data1['play_url'] # 视频的url# print(video_title,video_url)except Exception as e:break
请问嵌套循环这情况怎么写或者怎么修改哦,谢谢! 展开
数据结构大致是这样的:data变量->data->response->results(list)->content
也就是说,results其实是一个List,而List只能通过索引(index)获取元素,而不是字符串str。
这意味着你需要把代码改为:
data_list = data['data']['response']['results'] # 获取results列表
for data1 in data_list:
try:
video_title = data1['content']['title'] +'.mp4' # 视频文件名
video_url = data1['content']['play_url'] # 视频的url
print(video_title,video_url)
except Exception as e:
break
1. 根据JS控制台,我抓取到以下信息:
https://haokan.baidu.com/web/author/listall?app_id=1598885037570192&ctime=<时间戳>&rn=1&_api=1
在刷新视频列表时,rn不断变化,可能代表了视频组顺序,因此你需要多次请求rn=1,2,3(for i in ...)
注:为了安全,ctime时间戳需要用程序加入。