开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 316|回复: 8
收起左侧

[已解决] python调用指纹浏览器例子

 关闭 [复制链接]
结帖率:60% (3/5)
发表于 2025-9-17 15:08:02 | 显示全部楼层 |阅读模式   陕西省渭南市
500精币
最近在自学py,在尝试配合selenium通过API创建比特浏览器(火狐内核)后,无法控制操作,怎么也连不上,想要个例子,通过python调用API创建比特浏览器firefox内核的网页并打开,访问某度,然后搜索 牛B,即可  比特 ads  hubstudio都可以,论坛内看到一些大佬发的易语言的但是我看不懂。。500精币奉上

最佳答案


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:100% (1/1)

签到天数: 7 天

发表于 2025-9-17 15:08:03 | 显示全部楼层   山东省济宁市
QQ_1758124669150.png

点评

Thanks for the 500 精币!   山东省济宁市  发表于 2025-9-17 23:59

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:88% (7/8)

签到天数: 8 天

发表于 2025-9-17 15:39:23 | 显示全部楼层   山西省太原市
你这东西 比特的官网不是有APi demo吗 直接下载下来用就可以了呀
回复

使用道具 举报

签到天数: 5 天

发表于 2025-9-17 16:41:04 高大上手机用户 | 显示全部楼层   广东省汕头市
还在用比特吗,不是要强制实名了吗
回复

使用道具 举报

结帖率:60% (3/5)

签到天数: 2 天

 楼主| 发表于 2025-9-17 16:45:34 | 显示全部楼层   陕西省渭南市
尾巴去哪了 发表于 2025-9-17 15:39
你这东西 比特的官网不是有APi demo吗 直接下载下来用就可以了呀

你说的是chrome吧老哥,firefox你肯定没试过 创建完连不上
回复

使用道具 举报

签到天数: 5 天

发表于 2025-9-17 22:20:51 | 显示全部楼层   广东省汕头市
joesince2016 发表于 2025-9-17 16:45
你说的是chrome吧老哥,firefox你肯定没试过 创建完连不上

改成fdp调用就可以
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 7 天

发表于 2025-9-17 23:47:24 | 显示全部楼层   山东省济宁市
这两个不是一套东西用法 我给你写一个demo
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 7 天

发表于 2025-9-17 23:56:30 | 显示全部楼层   山东省济宁市
[Python] 纯文本查看 复制代码
import asyncio
import time

import websockets
import json
from bit_api import openBrowser

async def run_cdp():
    res = openBrowser("8dc0d9ae41212fcba9123066953923e2")
    WS_URL = res['data']['ws']

    async with websockets.connect(WS_URL) as websocket:
        msg_id = 0
        session_id = None

        async def send_cmd(method, params=None):
            nonlocal msg_id, session_id
            msg_id += 1
            cmd = {"id": msg_id, "method": method, "params": params or {}}
            if session_id and not method.startswith("Target."):
                cmd["sessionId"] = session_id
            await websocket.send(json.dumps(cmd))

            while True:
                resp_raw = await websocket.recv()
                resp = json.loads(resp_raw)
                if resp.get("id") == msg_id:
                    return resp
                if resp.get("method") == "Target.receivedMessageFromTarget":
                    inner = json.loads(resp["params"]["message"])
                    if inner.get("id") == msg_id:
                        return inner

        # 1. 新建页面
        resp = await send_cmd("Target.createTarget", {"url": "about:blank"})
        target_id = resp["result"]["targetId"]

        # 2. attach
        await websocket.send(json.dumps({
            "id": 999,
            "method": "Target.attachToTarget",
            "params": {"targetId": target_id, "flatten": True}
        }))
        while True:
            evt = json.loads(await websocket.recv())
            if evt.get("method") == "Target.attachedToTarget":
                session_id = evt["params"]["sessionId"]
                print("Got session_id:", session_id)
                break

        # 3. 启用
        await send_cmd("Page.enable")
        await send_cmd("Runtime.enable")

        # 4. 跳转百du
        await send_cmd("Page.navigate", {"url": "https://www.baidu.com"})

        # 等 loadEventFired
        while True:
            evt = json.loads(await websocket.recv())
            if evt.get("method") == "Target.receivedMessageFromTarget":
                inner = json.loads(evt["params"]["message"])
                if inner.get("method") == "Page.loadEventFired":
                    print("Page fully loaded")
                    break

        # 5. 用 JS 操作 DOM
        await send_cmd("Runtime.evaluate", {
            "expression": "document.querySelector('.s_ipt').value='哥们我很需要你的500精币谢谢';"
        })

        await send_cmd("Runtime.evaluate", {
            "expression": "document.querySelector('.s_btn').click();"
        })
        # 等 1 秒
        await asyncio.sleep(1)
        print("哥们我很需要你的500精币谢谢")
        # end
        print("搜索已触发!")

# 运行
asyncio.run(run_cdp())



补充内容 (2025-9-18 22:57):
该帖子的答案,荣誉+1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表