0
点赞
收藏
分享

微信扫一扫

豆瓣电影ajax数据获取并保存到本地

小安子啊 2022-02-04 阅读 103

目录

一、目标网址分析

二、代码实现


呼噜呼噜~~学习记录:

一、目标网址分析

豆瓣电影排行榜,对分类榜单的部分数据获取 

 随便点进去一个类型可以发现电影信息在外面鼠标向下滑动后才慢慢的加载出来:所以可以进到如下页面进行查看。

 对其请求网址查看:

 

再:

 

 再多找几个类型的网址后:某一个类型的网址

https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=0&limit=20

可以传参,得到不同类型的网址和数据:limt是表示该类型的电影前多少的排名

url = 'https://movie.douban.com/j/chart/top_list'
data = {
    'type': type,
    'interval_id': '100:90',
    'action': '',
    'start': 0,
    'limit': limt
}

不同类型的type:(没有31个,嘿嘿)

1-纪录片, 2-传记, 3-犯罪, 4-历史, 5-动作, 6-情色,
7-歌舞, 8-儿童, 10-悬疑,11-剧情,12-灾难, 13-爱情,
14-音乐, 15-冒险, 16-奇幻, 17-科幻, 18-运动, 19-惊悚,
20-恐怖, 22-战争, 23-短片, 24-喜剧, 25-动画, 26-同性, 
27-西部 ,28-家庭, 29-武侠, 30-古装,  31-黑色电影

可以打印试试效果:

 在这里可以将数据复制下来查看:

 json数据:

 但首先要将“json数据”转为“Python对象”:反序列化:json.loads()等。

 

 再在字典里取我们想获取的数据:

 pandas保存:

load_shuju = pd.DataFrame({'电影名称': title, '电影类型': type, '评分': score,
                           '参评人数': vote_count, '演员': actors, '电影链接': move_url})
load_shuju.to_csv('d:/豆瓣.csv')

二、代码实现

"""
2022年

CSDN:抄代码抄错的小牛马
"""
import json
import requests
import pandas as pd

print(
    ''' 
    1-纪录片, 2-传记, 3-犯罪, 4-历史, 5-动作, 6-情色,
    7-歌舞, 8-儿童, 10-悬疑,11-剧情,12-灾难, 13-爱情,
    14-音乐, 15-冒险, 16-奇幻, 17-科幻, 18-运动, 19-惊悚,
    20-恐怖, 22-战争, 23-短片, 24-喜剧, 25-动画, 26-同性, 
    27-西部 ,28-家庭, 29-武侠, 30-古装,  31-黑色电影
    ''')
type = input("请输入电影类型:")
limt = int(input("请输入想查看前多少名的电影信息:"))
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'
}
url = 'https://movie.douban.com/j/chart/top_list'
data = {
    'type': type,
    'interval_id': '100:90',
    'action': '',
    'start': 0,
    'limit': limt
}
resp = requests.get(url=url, headers=headers, params=data).text
dict_list = json.loads(resp)
title = [title["title"] for title in dict_list]
type = [types["types"] for types in dict_list]
score = [score["score"] for score in dict_list]
vote_count = [vote_count["vote_count"] for vote_count in dict_list]
actors = [actors["actors"] for actors in dict_list]
move_url = [url["url"] for url in dict_list]
load_shuju = pd.DataFrame({'电影名称': title, '电影类型': type, '评分': score,
                           '参评人数': vote_count, '演员': actors, '电影链接': move_url})
load_shuju.to_csv('d:/豆瓣.csv')

运行看看:

 上面存在D盘目录下的,打开查看数据:

 记录~~~ bye~~


 

举报

相关推荐

0 条评论