当前位置:   article > 正文

笔记--抓取王者荣耀盒子图片视频

笔记--抓取王者荣耀盒子图片视频

此文章借鉴:https://blog.csdn.net/c406495762/article/details/76850843

作者思路很新奇,所以学习测试了一下,可以成功,特意跟大家分享一下。

准备工作

需要用到工具

fiddler抓包工具

APP王者荣耀盒子

下载fiddler之后设置一下参数 Tools>options


勾选这些HTTPS参数


在Connections中设置如下,这里使用默认8888端口,允许远程连接


附上会话含义对照表


设置完成下载证书

安全证书下载

    在电脑浏览器中输入地址:http://localhost:8888/,点击FiddlerRoot certificate,下载安全证书:


下载完成直接安装到手机上,我测试过也可以直接用的

局域网设置

    想要使用Fiddler进行手机抓包,首先要确保手机和电脑的网络在一个内网中,可以使用让电脑和手机都连接同一个路由器。当然,也可以让电脑开放WIFI热点,手机连入。这里,我使用的方法是,让手机和电脑同时连入一个路由器中。最后,让手机使用电脑的代理IP进行上网。

    首先,查看电脑的IP地址,在cmd中使用命令ipconfig查看电脑IP地址。找到无线局域网WLAN的IPv4地址,记下此地址。


 在手机上,点击连接的WIFI进行网络修改,添加代理。进行手动设置,主机名即为上图中找到的IP地址,端口号即为Fiddler设置中的端口号8888,:


然后开始抓包


实战抓取英雄图片代码如下:

  1. #coding:utf-8
  2. import requests
  3. import json
  4. def get_url(url):
  5. headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
  6. response=requests.get(url,headers=headers)
  7. items=json.loads(response.text)
  8. for item in items['list']:
  9. print(item['name'],item['cover'])
  10. download_image(item['name'],item['cover'])
  11. def pare_page(url):
  12. headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
  13. response=requests.get(url,headers=headers)
  14. return response.content
  15. def download_image(name,url):
  16. print("正在下载。。",name)
  17. content=pare_page(url)
  18. with open('image/'+name+'.png','wb') as f:
  19. f.write(content)
  20. f.close()
  21. def main():
  22. url='http://gamehelper.gm825.com/wzry/hero/list?channel_id=90001a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.2&version_code=1202&cuid=CB62F540AA842CC623F5D04B0AF0AA84&ovr=6.0.1&device=vivo_vivo+Y55A&net_type=1&client_id=tdFDX5K%2FHfNPTqTETLeftQ%3D%3D&info_ms=1JBRgiBB5cyziodK0kTHXQ%3D%3D&info_ma=p4qcnKI38TZwm5WlOnLOpM5gBT2glGZwYu%2BJW9qzFXg%3D&mno=0&info_la=OzzjfDkXpV43oHSm5KH7Jg%3D%3D&info_ci=OzzjfDkXpV43oHSm5KH7Jg%3D%3D&mcc=0&clientversion=&bssid=TMz3SkD4%2BwNOWao9UUaO6K7n29wgvfSw10nW9F23FHM%3D&os_level=23&os_id=9519457c70dae0ee&resolution=720_1280&dpi=320&client_ip=192.168.4.182&pdunid=b00c08b'
  23. get_url(url)
  24. if __name__=='__main__':
  25. main()

最后查看一下,所有英雄就都被下载到本地啦。


下面来抓取一下视频的操作:

  1. #coding:utf-8
  2. import json
  3. import requests
  4. def get_url(url):
  5. headers={
  6. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
  7. }
  8. response=requests.get(url,headers=headers)
  9. items=json.loads(response.text)
  10. items=items.get('list')
  11. for item in items:
  12. print(item.get('title'),item.get('video_url'))
  13. load_media(item.get('title'),item.get('video_url'))
  14. def do_load_media(url, path):
  15. try:
  16. headers = {
  17. "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.3.2.1000 Chrome/30.0.1599.101 Safari/537.36"}
  18. # 正在发起请求
  19. res = requests.get(url, stream=True, headers=headers)
  20. # 写入收到的视频数据
  21. with open('media/'+path+'.mp4', 'ab') as file:
  22. file.write(res.content)
  23. file.flush()
  24. print('下载完成')
  25. except Exception as e:
  26. print(e)
  27. def load_media(path,url):
  28. print('正在下载视频。。。')
  29. do_load_media(url, path)
  30. if __name__=='__main__':
  31. url1='http://gamehelper.gm825.com/wzry/video/rec?pn={0}&channel_id=90001a&app_id=h9044j&game_id=7622&game_name=王者荣耀&vcode=12.0.2&version_code=1202&cuid=CB62F540AA842CC623F5D04B0AF0AA84&ovr=6.0.1&device=vivo_vivo+Y55A&net_type=1&client_id=tdFDX5K%2FHfNPTqTETLeftQ%3D%3D&info_ms=1JBRgiBB5cyziodK0kTHXQ%3D%3D&info_ma=p4qcnKI38TZwm5WlOnLOpM5gBT2glGZwYu%2BJW9qzFXg%3D&mno=0&info_la=OzzjfDkXpV43oHSm5KH7Jg%3D%3D&info_ci=OzzjfDkXpV43oHSm5KH7Jg%3D%3D&mcc=0&clientversion=&bssid=NQCEUuOKrAlze6Mfqc0rgO4%2FtM47uuwrhjHXKRh9U5c%3D&os_level=23&os_id=9519457c70dae0ee&resolution=720_1280&dpi=320&client_ip=172.27.35.2&pdunid=b00c08b'
  32. for i in range(1,3):
  33. url=url1.format(str(i))
  34. print('正在爬取第%s页,请稍等'%i)
  35. get_url(url)

查看下最后结果:



设置一下要爬取页数,视频就会陆陆续续爬取下来。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/980917
推荐阅读
相关标签
  

闽ICP备14008679号