手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

简介: 今天教大家抓到数据包之后(需要令牌token才能获取数据),怎么编写python代码去构造数据包,这里以获取『某酷视频』为例,获取个人历史播放视频数据,并进行可视化数据展示

大家好,我是阿辰,今天手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

上次有粉丝说,那个是ios手机,安卓手机现在需要root权限才可以安装证书,那么今天就不以手机为例,以电脑PC端为例,这样大家都可以上手尝试

今天教大家抓到数据包之后(需要令牌token才能获取数据),怎么编写python代码去构造数据包,这里以获取『某酷视频』为例,获取个人历史播放视频数据,并进行可视化数据展示

1

抓包工具

Fiddler是PC端的抓包工具,如果没有这个工具的小伙伴可以在公众号后台:回复:fiddler,领取安装包。

1.配置Fiddler

端口设置为8888

设置好之后点击一下Actions,让设置生效

这里设置一下过滤域名,目的是只查看需要查看的域名数据包

2.安装证书

点击第一个可以在pc机上安装证书,Fiddler就可以抓取https数据包

2

pc端代理

在设置-代理,里面设置相应的ip和端口(这里ip是本机ip127.0.0.1,和fiddler中对应的端口)

下面就可以开始抓包

3

开始抓包

在pc机上打开某酷视频软件,点击历史播放,查看记录

可以看到历史播放的视频

打开之后再Fiddler可以看到数据包

对应数据包返回的json数据

4

编程构造请求

抓到数据包之后,我们可以知道cookie、请求链接等信息

如果没有cookie等信息可能会出现下面这种情况!

请求链接可以直接粘贴

获取cookie

请求头(这里替换cookie),User-Agent是模拟客户端

目标url

origin_url = "https://playlog.youku.com/playlog/open/get.json?appName=iKu&appVersion=7.9.5&appkey=NWKOm6ipixT2f4Rs&ccode=03010101+&clientDrmAbility=7&deviceName=iKu&deviceid=54ab3a599713&hwClass=1&isOpenControl=1&os_ver=win_10.0_64&pg=1&pz=100&sign=a41d7247936a5bb7c076a6992d311921&stoken=UtDB1C4gT9Kg5h2crX7Cy2oZfJqIo2Zwj7rPYW9QZGyzOzN2Zzv14TQYGah0hxzGKESK1PElUp92d93yxZaCC6Ej8XBFCbv6arPpzNLTOQbS%252B0rBf8mB7TzAoLYekkTK4XmocdKt3OxACcMwchQZWQ%253D%253D&time=1618191263&utdid=YB5DqwAAACkDAIwqsB2Ux2P8&ver=8.0.8.12173"

添加Cookie避免登陆操作,这里的"User-Agent"最好为客户端的标识

yourcookie="自己的cookie"
headers = {

"Cookie": yourcookie,
"User-Agent": "IKU/8.0.8.12173;IKUCID/IKU;OS/win_10.0_64;IKUCID/IKU"

}
构造请求

content = requests.post(origin_url, headers=headers).json()
results = content['results']
print(content)
print(results)
print(len(results))
with open("lyc0412.txt",'w+',encoding="utf-8") as f:

for i in results:
        print("类型="+i['category'])
        print("播放设备=" + i['devicename'])
        print("标题=" + i['title'])
        print("时间=" + i['pubdate'])
        print("-------------------------")
        f.write(str(i['category'])+"="+str(i['devicename'])+"="+str(i['title'])+"="+str(i['pubdate'])+"\n")

可以看到已经成功发送成功,并且提取出对应数据,这次就不把数据存到excel,直接存在文本文件中(以“=”分割开)。

5

可视化展示

1.类型展示
统计观看历史记录中类型个数

先看一下数据

for i in data:

temdata.append(i.split("=")[0])

name = list(set(temdata))
value = [temdata.count(k) for k in name]
c = (

Pie()
    .add(
    "",
    [list(z) for z in zip(name, value)],
    # 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标
    # 默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
    center=["35%", "50%"],
)
    .set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])  # 设置颜色
    .set_global_opts(
    title_opts=opts.TitleOpts(title="类型展示"),
    legend_opts=opts.LegendOpts(type_="scroll", pos_left="70%", orient="vertical"),  # 调整图例位置
)
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    .render("类型展示.html")

)

2.播放设备展示
统计播放设备类型个数(由于代码和上面代码差不多,这里就只展示不同部分代码)

temdata = []
for i in data:

temdata.append(i.split("=")[1])

name = list(set(temdata))
value = [temdata.count(k) for k in name]

3.影视年份统计展示
统计播放历史记录中,2020年、2019、2018等年份的影视个数

这里只需要去除年份即可

temdata = []
for i in data:

temdata.append((i.split("=")[-1])[0:4])

name = list(set(temdata))
然后统计每一个年份的个数

temdict={}
for i in name:

temdict[i]=temdata.count(i)

value_sorted_result = sorted(temdict.items(), key=lambda item: item[1], reverse=True) # 按value进行降序
names = [i[0] for i in value_sorted_result]
value = [i[1] for i in value_sorted_result]

6

小结

本文讲解了如何爬取PC端数据(以某酷视频为例,爬取个人播放历史数据,并进行可视化展示),过程很详细,满满干货,希望可以起到抛砖引玉效果,让大家学到更多技术!

如果大家觉得还可以什么角度去分析展示数据的,欢迎在下方留言(我会认真看)

最后说一声:原创不易,求给个赞、在看、评论

相关文章
|
8月前
|
数据采集 Web App开发 JSON
浏览器插件:WebScraper基本用法和抓取页面内容(不会编程也能爬取数据)
本文以百度为实战案例演示使用WebScraper插件抓取页面内容保存到文件中。以及WebScraper用法【2月更文挑战第1天】
598 2
浏览器插件:WebScraper基本用法和抓取页面内容(不会编程也能爬取数据)
|
JavaScript 数据挖掘 Java
91 网站点击流数据分析案例(数据展示)
91 网站点击流数据分析案例(数据展示)
169 0
|
搜索推荐 JavaScript 前端开发
77 网站点击流数据分析案例(原理及意义)
77 网站点击流数据分析案例(原理及意义)
453 0
|
2月前
|
数据采集 Web App开发 监控
捕获抖音截图:如何用Puppeteer保存页面状态
随着抖音直播的兴起,实时动态和互动元素吸引了大量用户。为了捕获直播页面的实时信息,本文介绍了如何使用 Puppeteer 和代理 IP 服务,解决页面动态加载、反爬虫机制等问题,实现自动化抓取和截图保存。通过安装 Puppeteer、配置代理 IP 和编写简单脚本,可以高效地捕获抖音直播页面的状态。
155 51
|
3月前
|
数据采集 监控 数据可视化
用Python构建动态折线图:实时展示爬取数据的指南
本文介绍了如何利用Python的爬虫技术从“财富吧”获取中国股市的实时数据,并使用动态折线图展示股价变化。文章详细讲解了如何通过设置代理IP和请求头来绕过反爬机制,确保数据稳定获取。通过示例代码展示了如何使用`requests`和`matplotlib`库实现这一过程,最终生成每秒自动更新的动态股价图。这种方法不仅适用于股市分析,还可广泛应用于其他需要实时监控的数据源,帮助用户快速做出决策。
218 0
|
3月前
|
数据采集
以“股票代码实时抓取股票信息”为例的爬虫案例
爬虫—根据股票代码实时抓取股票信息
142 0
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
图库,设计类软件,App视频截图软件,外加设计图库,在你截取视频就能够实现图片收录,通过设计类网站后台控制系统,可以提前设置好,统计的分类内容,定义好分类,自动收录图片,再将截图汇总整理展示
|
7月前
|
数据采集 存储 数据挖掘
Python网络爬虫实战:抓取并分析网页数据
使用Python的`requests`和`BeautifulSoup`,本文演示了一个简单的网络爬虫,抓取天气网站数据并进行分析。步骤包括发送HTTP请求获取HTML,解析HTML提取温度和湿度信息,以及计算平均温度。注意事项涉及遵守robots.txt、控制请求频率及处理动态内容。此基础爬虫展示了数据自动收集和初步分析的基础流程。【6月更文挑战第14天】
611 9
|
移动开发 小程序 JavaScript
微信小程序学习实录6(百度经纬度采集、手动调整精度、H5嵌入小程序、百度地图jsAPI、实时定位、H5更新自动刷新)
微信小程序学习实录6(百度经纬度采集、手动调整精度、H5嵌入小程序、百度地图jsAPI、实时定位、H5更新自动刷新)
249 1
|
8月前
|
存储 前端开发 小程序
Uniapp数据展示
Uniapp数据展示
76 0