Skip to main content

基于WebKit的Python自动化浏览器框架

Project description

WebKit-AutoFramework 自动化浏览器框架

🚀 一个基于原生 WebKit二次开发的自动化浏览器框架,支持命令行参数控制窗口位置与代理配置,并通过 Python 客户端驱动自动操作浏览器。

✨ 项目亮点

  • ✅ 🧠 基于 WebKit 源码构建,小而精致的浏览器内核
  • ✅ 🛠️ 自动启动 WebKit 与 WebDriver 进程
  • ✅ 📜 支持命令行传参(窗口位置、尺寸、代理类型、代理认证)
  • ✅ 💪 网络改造,支持 HTTP/SOCKS5 等代理模式
  • ✅ 📏 Python API 调用控制浏览器行为
  • ✅ 🧪 人类行为模拟,底层行为重写。

快速开始

🚀 交流群QQ:391116392

  1. 安装依赖:

    pip install psutil
    
  2. 下载项目

  3. 启动自动化:

    python main.py
    

示例代码

from AutoWkDriverClient import AutoWK
import time

if __name__ == "__main__":
    """自动化1236滑块验证码"""
    client = AutoWK()
    try:
        client.create_session()

        print("[STATUS]", client.status())

        client.set_timeouts({"pageLoad": 10000})
        print("[GET TIMEOUTS]", client.get_timeouts())

        client.navigate(r"https://www.12306.cn/index/view/infos/ticket_check.html")
        print("[URL]", client.get_current_url())

        #输入座次
        input_ele=client.find_element_by_css_selector("input#ticket_check_trainNum").input("1462")

        time.sleep(3)
        #选择地点
        drap=client.find_element_by_css_selector("div.model-select-text")
        drap.set_attribute("data-value","TXP")
        print('attr:', drap.get_attribute("data-value"))
        print('选择完毕')

        time.sleep(3)
        #拖拽滑块验证码
        btn=client.find_element_by_css_selector("li a.btn.btn-primary").click()
        time.sleep(5)
        client.drag_and_drop_pos_human(525,436,848,436)
        print('拖拽完毕')


    except Exception as e:
        print(e)

    finally:
        time.sleep(5)
        client.delete_session()
        client.close()

支持的启动命令行参数(MiniBrowser.exe)

参数 示例 说明
--x= --x=100 设置窗口左上角 X 坐标
--y= --y=200 设置窗口左上角 Y 坐标
--width= --width=1280 设置窗口宽度
--height= --height=720 设置窗口高度
--proxyType= --proxyType=socks5 代理类型:HTTP / SOCKS5
--proxyHost= --proxyHost=127.0.0.1 代理服务器地址
--proxyPort= --proxyPort=1080 代理端口
--proxyUsername= --proxyUsername=admin 代理认证用户名
--proxyPassword= --proxyPassword=123456 代理认证密码
例子:minibrowser.exe --proxyType=SOCKS5  --proxyHost=1.1.1.1  --proxyPort=1000 --proxyUsername=ruyi  --proxyPassword=wifi --x=500 --y=100  --width=500 --height=500 

项目结构

.
├── main.py                  # 示例入口,演示自动化操作
├── AutoWKBase.py            # WebKit 与 WebDriver 启动控制逻辑
├── AutoWkDriverClient.py    # 封装 WebDriver API 自动化操作类
├── Element.py               # 元素封装类,支持属性、点击、输入等操作
├── scripts/
│   └── launch_driver.bat    # 启动 WebKit WebDriver 的批处理脚本
├── bin/
│   └── MiniBrowser.exe      # 编译好的 WebKit 浏览器

TODO

  • ✅ 支持代理认证
  • ⏳ 支持 Cookie 持久化管理
  • ⏳ 支持 Shadow DOM 元素查找
  • ⏳ 完善窗口多开与进程隔离控制

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autowk-0.1.4.tar.gz (65.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autowk-0.1.4-py3-none-any.whl (66.6 MB view details)

Uploaded Python 3

File details

Details for the file autowk-0.1.4.tar.gz.

File metadata

  • Download URL: autowk-0.1.4.tar.gz
  • Upload date:
  • Size: 65.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for autowk-0.1.4.tar.gz
Algorithm Hash digest
SHA256 e07a37f373bfd4500f6fb961a59c7e4c82e66dabd31d5370b24bc5d121bcde3d
MD5 9ee8fce39f101cc3a1d177158cf723c1
BLAKE2b-256 d724fbca96c248a775d3fe7650d9ad1504cd8ed89fe4ed7a51f39f5d483b43ce

See more details on using hashes here.

File details

Details for the file autowk-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: autowk-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 66.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for autowk-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 64de49798334b837c95150cd720e9907f222a90619a8fc6459c9b409d1af8812
MD5 42cd2eb27f992532ef193be152802931
BLAKE2b-256 a9467f7276ac3cecd8ce7c882ebaadcfbf062a4aaf8cbc53aeeaa0a2ba4a53b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page