bit_api.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import requests
  2. import json
  3. import time
  4. # 官方文档地址
  5. # https://doc2.bitbrowser.cn/jiekou/ben-di-fu-wu-zhi-nan.html
  6. # 此demo仅作为参考使用,以下使用的指纹参数仅是部分参数,完整参数请参考文档
  7. url = "http://127.0.0.1:54345"
  8. headers = {
  9. 'Content-Type': 'application/json',
  10. 'X-API-KEY': '704daf420f7244d08be51f61c987a232' # 添加 API Token
  11. }
  12. def createBrowser(): # 创建或者更新窗口,指纹参数 browserFingerPrint 如没有特定需求,只需要指定下内核即可,如果需要更详细的参数,请参考文档
  13. json_data = {
  14. 'name': 'google', # 窗口名称
  15. 'remark': '', # 备注
  16. 'proxyMethod': 2, # 代理方式 2自定义 3 提取IP
  17. # 代理类型 ['noproxy', 'http', 'https', 'socks5', 'ssh']
  18. 'proxyType': 'noproxy',
  19. 'host': '', # 代理主机
  20. 'port': '', # 代理端口
  21. 'proxyUserName': '', # 代理账号
  22. "browserFingerPrint": { # 指纹对象
  23. 'coreVersion': '124' # 内核版本,注意,win7/win8/winserver 2012 已经不支持112及以上内核了,无法打开
  24. }
  25. }
  26. res = requests.post(f"{url}/browser/update",
  27. data=json.dumps(json_data), headers=headers).json()
  28. browserId = res['data']['id']
  29. print(browserId)
  30. return browserId
  31. def updateBrowser(): # 更新窗口,支持批量更新和按需更新,ids 传入数组,单独更新只传一个id即可,只传入需要修改的字段即可,比如修改备注,具体字段请参考文档,browserFingerPrint指纹对象不修改,则无需传入
  32. json_data = {'ids': ['5b9597e911284a23a2dca5caa2a658c0'],
  33. 'remark': '我是一个备注', 'browserFingerPrint': {}}
  34. res = requests.post(f"{url}/browser/update/partial",
  35. data=json.dumps(json_data), headers=headers).json()
  36. print(res)
  37. def openBrowser(id): # 直接指定ID打开窗口,也可以使用 createBrowser 方法返回的ID
  38. json_data = {"id": f'{id}'}
  39. res = requests.post(f"{url}/browser/open",
  40. data=json.dumps(json_data), headers=headers).json()
  41. return res
  42. def closeBrowser(id): # 关闭窗口
  43. json_data = {'id': f'{id}'}
  44. requests.post(f"{url}/browser/close",
  45. data=json.dumps(json_data), headers=headers).json()
  46. def deleteBrowser(id): # 删除窗口
  47. json_data = {'id': f'{id}'}
  48. print(requests.post(f"{url}/browser/delete",
  49. data=json.dumps(json_data), headers=headers).json())
  50. if __name__ == '__main__':
  51. browser_id = createBrowser()
  52. openBrowser(browser_id)
  53. time.sleep(10) # 等待10秒自动关闭窗口
  54. closeBrowser(browser_id)
  55. time.sleep(10) # 等待10秒自动删掉窗口
  56. deleteBrowser(browser_id)
  57. # 点验证码