模拟微信内置浏览器,微信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全局代理-教程+软件
7491 2
|
12天前
|
Java 数据安全/隐私保护
快手小红书抖音留痕工具,自动留痕插件工具,java代码开源
这个框架包含三个核心模块:主操作类处理点赞评论、配置管理类和代理管理类。使用时需要配合
|
12天前
|
人工智能 数据安全/隐私保护
抖音留痕脚本,快手小红书留痕工具,截流获客刷短视频软件
AutoJS脚本实现了完整的留痕功能,包含日志记录、定时截图、事件监听和模拟操作四大模块
|
Web App开发 Linux Android开发
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
|
16天前
|
Java Android开发
安卓虚拟摄像头过人脸,免root虚拟hook相机,虚拟相机hook版【jar】
两种Hook Android相机的方法:Xposed模块和Frida脚本。Xposed模块需要安装在已root的设备
|
18天前
|
数据采集 监控 API
淘宝京东拼多多通用电商 API 接口,数据抓取快人一步!
在电商市场中,通用电商 API 接口通过统一技术标准,打通淘宝、京东、拼多多等平台数据,具备跨平台兼容、数据标准化和实时抓取能力。它可应用于商品价格监控、详情获取、营销优化等场景,具有请求合并、反爬绕过、数据清洗等技术优势。相比单独开发接口,通用 API 实现了即开即用、零维护和实时更新。某服饰品牌接入后,价格监控效率提升 300%,缺货预警提前 48 小时,营销响应速度大幅提升。
76 1
|
12天前
|
机器学习/深度学习 数据可视化 数据安全/隐私保护
抖音留痕脚本,快手小红书微博,自动留痕插件工具
就是用autojs写的一个自动化工具脚本,其实写了好几天,感觉有点价值就分享出来吧 核心代码实现
|
23天前
|
Linux API 虚拟化
软件机器码一键修改工具, 永久修改机器码工具,一键解除机器码工具
系统启动时加载内核驱动 挂钩硬件查询API调用 动态生成虚拟硬件信息 修改内存中的SMBIOS/DMI数据 持久化到注册表/EFI变量
|
JavaScript 前端开发
JS之url进行编码和解码(三种方式)
JS之url进行编码和解码(三种方式)
18944 2