模拟微信内置浏览器,微信UA生成器,支持指纹代理IP

简介: 该实现包含完整的微信浏览器模拟功能,支持UA生成、指纹伪装和代理IP管理。使用时需要安装sele

下载地址:http://m.pan38.com/download.php?code=PBDDUV 提取码:6678
该实现包含完整的微信浏览器模拟功能,支持UA生成、指纹伪装和代理IP管理。使用时需要安装selenium和fake-useragent等依赖库,可通过配置ProxyManager的API密钥使用付费代理服务。

import random
import time
import hashlib
import json
import requests
from fake_useragent import UserAgent
from urllib.parse import urlparse
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class WeChatBrowserSimulator:
def init(self, proxy=None, enable_fingerprint=True):
self.proxy = proxy
self.enable_fingerprint = enable_fingerprint
self.wechat_ua_pool = [
'Mozilla/5.0 (Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2693 MMWEBSDK/201201 Mobile Safari/537.36 MMWEBID/7316 MicroMessenger/8.0.1.1841(0x28000151) Process/toolsmp WeChat/arm64',
'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.2(0x18000231) NetType/WIFI Language/zh_CN',
'Mozilla/5.0 (Linux; Android 11; Redmi K30 Pro Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3165 MMWEBSDK/20211001 Mobile Safari/537.36 MicroMessenger/8.0.16.2040(0x28001055) Process/appbrand0 WeChat/arm64'
]
self.fingerprint = self._generate_fingerprint()

def _generate_fingerprint(self):
    """生成浏览器指纹"""
    ts = int(time.time() * 1000)
    return {
        'device_id': hashlib.md5(str(ts).encode()).hexdigest(),
        'screen_resolution': f"{random.randint(360, 1920)}x{random.randint(640, 1080)}",
        'color_depth': random.choice([16, 24, 32]),
        'timezone': random.choice(['Asia/Shanghai', 'Asia/Hong_Kong']),
        'language': 'zh-CN',
        'platform': random.choice(['Linux x86_64', 'Win32', 'MacIntel']),
        'hardware_concurrency': random.choice([2, 4, 8]),
        'webgl_vendor': random.choice(['Intel Inc.', 'NVIDIA Corporation', 'AMD']),
        'canvas_hash': hashlib.md5(str(random.random()).encode()).hexdigest(),
        'webgl_hash': hashlib.md5(str(random.random()).encode()).hexdigest()
    }

random
import requests
from datetime import datetime, timedelta

class ProxyManager:
def init(self, api_key=None, max_retry=3):
self.api_key = api_key
self.max_retry = max_retry
self.proxy_pool = []
self.last_refresh = None

def _is_proxy_valid(self, proxy):
    """验证代理是否可用"""
    try:
        test_url = 'http://httpbin.org/ip'
        proxies = {'http': proxy, 'https': proxy}
        resp = requests.get(test_url, proxies=proxies, timeout=10)
        return resp.status_code == 200
    except:
        return False

def refresh_proxy_pool(self, count=10):
    """刷新代理池"""
    if self.api_key:
        # 从付费API获取代理
        api_url = f'https://proxyapi.com/v1/?api_key={self.api_key}&count={count}'
        try:
            resp = requests.get(api_url)
            new_proxies = resp.json().get('data', [])
            self.proxy_pool = [p for p in new_proxies if self._is_proxy_valid(p)]
        except Exception as e:
            print(f"刷新代理池失败: {str(e)}")
    else:
        # 免费代理源
        free_sources = [
            'https://www.proxy-list.download/api/v1/get?type=http',
            'https://api.proxyscrape.com/v2/?request=getproxies&protocol=http'
        ]
        for source in free_sources:
            try:
                resp = requests.get(source, timeout=10)
                new_proxies = resp.text.split('\r\n')
                self.proxy_pool.extend([p for p in new_proxies if self._is_proxy_valid(p)])
            except:
                continue

    self.last_refresh = datetime.now()
    return len(self.proxy_pool)

from selenium.webdriver import ChromeOptions
from selenium.webdriver.common.proxy import Proxy, ProxyType

def configure_wechat_driver(simulator, proxy_manager=None):
"""配置微信浏览器驱动"""
options = ChromeOptions()

# 设置微信UA
ua = random.choice(simulator.wechat_ua_pool)
options.add_argument(f'user-agent={ua}')

# 移动端模拟
options.add_argument('--use-mobile-user-agent')
options.add_experimental_option("mobileEmulation", {
    "deviceMetrics": {"width": 375, "height": 667, "pixelRatio": 3.0},
    "userAgent": ua
})

# 指纹设置
if simulator.enable_fingerprint:
    options.add_argument('--disable-blink-features=AutomationControlled')
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option("useAutomationExtension", False)

# 代理设置
if proxy_manager and proxy_manager.proxy_pool:
    proxy = random.choice(proxy_manager.proxy_pool)
    proxy_obj = Proxy()
    proxy_obj.proxy_type = ProxyType.MANUAL
    proxy_obj.http_proxy = proxy
    proxy_obj.ssl_proxy = proxy
    options.add_argument(f'--proxy-server={proxy}')

# 其他配置
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-extensions')

return options
相关文章
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
10216 2
|
编解码 Linux Android开发
安卓投屏神器 Scrcpy 安装与使用(支持 Mac、Windows、Linux)
安卓投屏神器 Scrcpy 安装与使用(支持 Mac、Windows、Linux)
47967 1
|
6月前
|
JSON API 开发者
京东商品 API 接口,开发者详解与使用指南
京东开放平台提供商品API,包括获取商品详情、搜索商品、查询分类等功能。开发者可通过API实现商品数据获取与分析,适用于电商选品、价格监控、比价应用等场景。本文详解API调用流程、签名生成方式及Python代码示例,助力高效接入京东商品数据。
|
6月前
|
人工智能 JavaScript 前端开发
分享开源库:AI驱动的JavaScript反编译,针对混淆和压缩的代码
这是一个智能JavaScript反混淆与代码分析工具,通过AST转换和AI深度分析,自动还原变量名、识别依赖库、生成可视化控制流图,并支持多格式导出,提升代码理解与审计效率。访问 [jsunpack.tech](https://www.jsunpack.tech/) 即可在线体验。
1249 0
|
JavaScript 前端开发
JS之url进行编码和解码(三种方式)
JS之url进行编码和解码(三种方式)
19988 2
|
Web App开发 Linux Android开发
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
|
运维 关系型数据库 MySQL
宝塔面板 Docker 镜像加速教程
本文介绍了如何为宝塔面板中的 Docker 配置轩辕镜像加速。内容包括:安装 Docker 管理器、获取镜像加速地址、配置加速 URL 以及验证设置等步骤。通过使用免费版或专业版加速地址(如 docker.xuanyuan.me 或 xuanyuan.cloud),可显著提升镜像拉取速度。同时,还提供了日常使用方法和注意事项,帮助用户顺利完成配置并保障 Docker 服务稳定运行。
386 0
|
6月前
|
Java Android开发
安卓虚拟摄像头过人脸,免root虚拟hook相机,虚拟相机hook版【jar】
两种Hook Android相机的方法:Xposed模块和Frida脚本。Xposed模块需要安装在已root的设备
|
6月前
|
机器学习/深度学习 数据可视化 数据安全/隐私保护
抖音留痕脚本,快手小红书微博,自动留痕插件工具
就是用autojs写的一个自动化工具脚本,其实写了好几天,感觉有点价值就分享出来吧 核心代码实现