Pandas数据分析实战案例之青春有你2
看前须知:如果有需要借鉴的地方的话,可以把 导出数据 和 下载图片 的地址改掉。除此以外,可能定义函数的时候里面的 获取资料地址有误 ,会显示404,在文章末尾处会附上相应解决方法。
任务:
- 获取参加鹅厂比赛小姐姐的姓名
- 获取小姐姐们的头像图片
代码如下:
1. 导入所需库
# 导入库
import pandas as pd
import requests
import json
2. 接下来是定义从爱奇艺平台获取信息的一个函数:
def get_aqiyi_infos():
"""
获取资料地址:http://www.iqiyi.com/h5act/generalVotePlat.html?activityId=373
"""
# 获取url
url = "https://vote.iqiyi.com/vote-api/r/getMergeVoteInfo?voteIds=0896558730010825&sourceId=1&uid=&sign=7461535834340ff3861fc4e1bf73cbaf"
# 添加headers
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36'
}
# 发起请求
response = requests.get(url, headers=headers)
# 解析请求--解析成字典
json_data = json.loads(response.text)
# 提取选手信息——使用字典索引的方式
player_infos = json_data['data']['0896558730010825']['childs'][0]['options']
# 提取信息——利用for循环
rank_num = []
names = []
images = []
for i, j in enumerate(player_infos):
rank_num.append(i+1)
names.append(j.get('text'))
# images.append(j.get('picURL'))
images.append(j.get('picUrl'))
# 保存信息
df = pd.DataFrame({
'rank_num': rank_num,
'names': names,
'images': images
})
return df
获取请求头 和 获取url 的方法在文末位置。
3. 接下来可以下运行一下函数:
# 运行函数
df = get_aqiyi_infos()
4. 导出数据
# 导出数据
df.to_csv('E:/学习文件/Python数据分析/爱奇艺选手信息.csv', index=False)
5. 下载图片
# 下载图片
for name, image in zip(df['names'], df['images']):
#请求图片url
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36'
}
r = requests.get(image, headers=headers)
# 创建新的图片
f = open('E:/学习文件/Python数据分析/青春有你2photo/{}.png'.format(name), 'wb')
# 写入图片内容
f.write(r.content)
# 关闭
f.close()
发现问题:
1. 在存档的文件中并没有图片信息

2. 运行后报错
MissingSchema: Invalid URL 'None': No schema supplied. Perhaps you meant http://None?


解决问题:
这个其实也是由于自己的粗忽大意造成的
- 首先,出错的位置如下图所示

- 我们要提取的地方如下图所示

- 总结应该是picUrl,而不是picURL。
获取资料地址方法
- 在浏览器搜索爱奇艺,进入官方平台后,搜索青春有你2可以进入如下页面,注意右下角的二维码

- 将二维码图片另存为随便位置即可
- 在浏览器上输入网址http://cli.im/deqr
- 将保存的二维码图片拖入即可生成网址静态码
请求头获取方法
- 打开网页——开发者工具——右键检查——导航栏处点击Network——CTRL+R进行刷新
- 一般是点击XHR,按照下图找到请求头

url获取方法
与上述获取请求头的方法一致,如下图所示
版权声明:本文为qq_45804925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。