Skip to main content

FBC指纹浏览器 RPA SDK for python

Project description

FBC-SDK技术文档

简介

名称:FBC SDK for python

作用:

  • 允许用户自己编写自动化脚本对接FBC指纹浏览器
  • 允许用户在本地运行脚本控制FBC指纹浏览器窗口

目前只支持python

快速开始

首先

你需要安装FBC SDK

pip install fbc_for_python

本地控制FBC

如果你希望在本地运行你的 RPA 脚本,控制FBC浏览器

你可以这样:

  • 下载适配的webdriver,FBC版本目前为:chromium 117,chrome_driver下载地址:历史chrome driver
  • 编写你的 RPA 脚本,并使用 FBC SDK 启动脚本

函数形式:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from fbc_for_python import FBC

def spider(chrome_addr):
    options = webdriver.ChromeOptions()
    s = Service(r"您的webdriver路径")
    options.debugger_address = chrome_addr
    driver = webdriver.Chrome(service=s, options=options)
    driver.get('https://baidu.com')

if __name__ == '__main__':
    fbc = FBC.FBC(fbc_addr="您的FBC地址")
    fbc.start(spider)

spider为你自行编写的代码,但你的函数入口需要准备一个参数用于接受 FBC 浏览器的调试地址,如:chrome_addr

而如果你的代码是用类封装的,那你可以这样:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from fbc_for_python import FBC

class spider(object):

    def run(self, chrome_addr):
        options = webdriver.ChromeOptions()
        s = Service(r"您的webdriver路径")
        options.debugger_address = chrome_addr
        driver = webdriver.Chrome(service=s, options=options)
        driver.get('https://baidu.com')
        
if __name__ == '__main__':
fbc = FBC.FBC(fbc_addr="您的FBC地址")
s = spider()
fbc.start(s.run)

同样,你的入口也需要准备一个参数用于接收 FBC 浏览器的调试地址

在FBC设备内控制FBC

而如果你希望脚本在FBC设备内运行,你还需要在入口多准备一个参数,用于接受webdriver的路径,并且你需要在调用SDK启动方法的时候显式指定runInFBC=True来告诉SDK 本脚本是放在FBC设备内运行的(后期脚本商城)。

比如,像这样(函数):

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from fbc_for_python import FBC

def spider(chrome_addr, driver_path):
    options = webdriver.ChromeOptions()
    s = Service(driver_path)
    options.debugger_address = chrome_addr
    driver = webdriver.Chrome(service=s, options=options)
    driver.get('https://baidu.com')

if __name__ == '__main__':
    fbc = FBC.FBC(fbc_addr="您的FBC地址")
    fbc.start(spider, runInFBC=True)

或者,像这样(类):

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from fbc_for_python import FBC

class spider(object):

    def run(self, chrome_addr, driver_path):
        options = webdriver.ChromeOptions()
        s = Service(driver_path)
        options.debugger_address = chrome_addr
        driver = webdriver.Chrome(service=s, options=options)
        driver.get('https://baidu.com')
        
if __name__ == '__main__':
fbc = FBC.FBC(fbc_addr="您的FBC地址")
s = spider()
fbc.start(s.run, runInFBC=True)

OK,现在你将可以在FBC RPA中为所欲为了。

其他

如果你希望在你的自动化脚本中捕获代理异常,并自动更换代理,你可以这样:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from fbc_for_python import FBC

def spider(chrome_addr):
    fbc = FBC.FBC(fbc_addr="您的FBC地址")
    options = webdriver.ChromeOptions()
    s = Service(r"您的webdriver路径")
    options.debugger_address = chrome_addr
    try:
        driver = webdriver.Chrome(service=s, options=options)
        driver.get('https://baidu.com')
    except:
        serial = fbc.get_serialID(chrome_addr=chrome_addr)
        proxy_status = fbc.check_proxy(proxyINFO="代理协议://代理ip:代理端口:代理用户名:密码")
        if proxy_status["data"]["netdelay"] != "不可用":
            fbc.set_proxy(serial=serial, proxyINFO="代理协议://代理ip:代理端口:代理用户名:密码")
            fbc.restart_browser(serials=[serial])
        driver = webdriver.Chrome(service=s, options=options)
    driver.get('https://baidu.com')
        
if __name__ == '__main__':
    fbc = FBC.FBC(fbc_addr="您的FBC地址")
    fbc.start(spider)

当然,你也可以提前检测当前窗口使用的代理的健康状态,然后判断处理。请自行研究

SDK

安装sdk

pip install fbc_for_python

设置

延迟

用于设置脚本控制各个窗口的随机时间间隔.

示例:

开启延迟,并把随机间隔控制在 3-5s 之间

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.set_delay(
    random_start=3,
    random_end=5,
    enable=True
)

最大进程

表示同时可以操作的浏览器窗口数量,如果您在本地运行您的脚本,您可以根据您本地电脑的CPU核心数调整,但如果您是在FBC设备内运行,建议保留默认值

示例:

指定最大同时控制的浏览器窗口数量为 30

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.set_maxThreads(maxThreads=30)

获取浏览器窗口调试地址

获取工作区全部窗口地址

fbc = FBC.FBC(fbc_addr="FBC设备IP")
addrs = fbc.get_chromeDebugAddr()

获取指定的的窗口地址

fbc = FBC.FBC(fbc_addr="FBC设备IP")
addrs = fbc.get_chromeDebugAddr(serials=[1,2])

如果你希望获取设备本地127.0.0.1的调试地址,你可以这样:

fbc = FBC.FBC(fbc_addr="FBC设备IP")
addrs = fbc.get_chromeDebugAddr(runInFBC=True)

获取调试地址对应的窗口编号

可用于后续窗口代理设置等需要传入窗口编号的地方

fbc = FBC.FBC(fbc_addr="FBC设备IP")
serial = fbc.get_serialID(chrome_addr="窗口调试地址")

获取代理信息

用于获取指定窗口的代理信息

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.get_proxy(serial="窗口编号")

设置代理

用于设置指定窗口的代理信息

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.set_proxy(serial="窗口编号", proxyINFO="代理协议://代理ip:代理端口:代理用户名:密码")

检查代理

检查您的代理是否可用

fbc = FBC.FBC(fbc_addr="FBC设备IP")
proxy_status = fbc.check_proxy(proxyINFO="代理协议://代理ip:代理端口:代理用户名:密码")

清空所有窗口代理

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.clear_all_proxy()

重启窗口

重启指定的窗口

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.restart_browser(serials=[1,2])

启动参数

爬虫函数(必传)

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.start(spiderFunc=spider)

指定控制的窗口编号

所有地址默认不传serials就是操控所有工作区的窗口

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.start(spiderFunc=spider,serials=[1,2])

指定在FBC设备内运行脚本

fbc = FBC.FBC(fbc_addr="FBC设备IP")
fbc.start(spiderFunc=spider, serials=[1,2], runInFBC=True)

FAQ

其他SDK通用问题将在这儿展示

  1. 如果导入异常,请指定安装版本

pip install fbc_for_python==2.0

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

fbc_for_python-2.0.tar.gz (6.2 kB view details)

Uploaded Source

File details

Details for the file fbc_for_python-2.0.tar.gz.

File metadata

  • Download URL: fbc_for_python-2.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.4

File hashes

Hashes for fbc_for_python-2.0.tar.gz
Algorithm Hash digest
SHA256 9c9c4a0a5ba94636b83f7c8fc826b87a2ae78504be80ddd488050796538db727
MD5 5619d339569a8e5c8b959ff942267102
BLAKE2b-256 eef7e0f3c77f43bcb9e736f003beb39b897d515fc3597ebe6188691b792f537d

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