Python3 使用selenium-wire捕获动态网页视频资源文件

1585364631
2023-03-06 / 0 评论 / 120 阅读 / 正在检测是否收录...

Python3 使用selenium-wire捕获动态网页视频资源文件

1.环境安装

idea虚拟环境
谷歌浏览器

pip3 install selenium
pip3 install selenium-wire

2.Python3代码

from selenium.webdriver.chrome.options import Options
from seleniumwire import webdriver


def getVideo(url):
    # 创建一个请求头对象
    chromeOptions = Options()
    # 设置无头模式,浏览器处于后台运行,不会在前台显示
    chromeOptions.add_argument('--headless')
    # 设置lang和User-Agent来模拟真人点击,防止被反爬虫检测到
    # 设置语言为中文 字符编码为UTF-8
    chromeOptions.add_argument('lang=zh_CN.utf-8')
    # 设置user-agent用来模拟EDGE浏览器
    UserAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/111.0.0.0'
    chromeOptions.add_argument(f'User-Agent={UserAgent}')
    # 启动浏览器并设置chrome_options参数
    driver = webdriver.Chrome(chrome_options=chromeOptions)
    # 3次重新连接尝试
    for i in range(0, 3):
        # 开始请求
        print(f"第{i}次请求")
        driver.get(url)
        for request in driver.requests:
            if request.url.endswith("mp4") or request.url.endswith("m3u8"):
                return {
                    "code": 200,
                    "data": request.url
                }
    driver.close()
    return {
        "code": 404,
        "data": "资源不存在"
    }


print(getVideo("寻找视频地址"))

3.运行结果

成功结果

第0次请求
第1次请求
{'code': 200, 'data': 'https://xxxxxxxxxxxxxxx'}

失败结果

第0次请求
第1次请求
第3次请求
{'code': 404, 'data': '资源不存在'}
0

评论 (0)

取消