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

此文章借鉴: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,:


然后开始抓包


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

#coding:utf-8

import requests
import json

def get_url(url):
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
    response=requests.get(url,headers=headers)

    items=json.loads(response.text)
    for item in items['list']:
        print(item['name'],item['cover'])
        download_image(item['name'],item['cover'])
def pare_page(url):
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
    response=requests.get(url,headers=headers)
    return response.content

def download_image(name,url):
    print("正在下载。。",name)
    content=pare_page(url)
    with open('image/'+name+'.png','wb') as f:
        f.write(content)
        f.close()

def main():
    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'
    get_url(url)

if __name__=='__main__':
    main()

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


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

#coding:utf-8
import json
import requests

def get_url(url):
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
             }
    response=requests.get(url,headers=headers)

    items=json.loads(response.text)
    items=items.get('list')
    for item in items:
        print(item.get('title'),item.get('video_url'))
        load_media(item.get('title'),item.get('video_url'))

def do_load_media(url, path):
    try:
        headers = {
            "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"}
        # 正在发起请求
        res = requests.get(url, stream=True, headers=headers)
        # 写入收到的视频数据
        with open('media/'+path+'.mp4', 'ab') as file:
            file.write(res.content)
            file.flush()
            print('下载完成')
    except Exception as e:
        print(e)


def load_media(path,url):
    print('正在下载视频。。。')
    do_load_media(url, path)


if __name__=='__main__':
    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'
    for i in range(1,3):
        url=url1.format(str(i))
        print('正在爬取第%s页,请稍等'%i)
        get_url(url)

查看下最后结果:



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

猜你喜欢

转载自blog.csdn.net/qq_32942549/article/details/79710053