API案例
1. E蜘蛛指纹浏览器EspiderBrowser Local API V1
1.1. 功能概述
E蜘蛛指紋瀏覽器EspiderBrowser支援本地Local API的功能,幫助使用者透過程式化的方式來讀寫帳號設定資訊、啟動和關閉瀏覽器、查詢帳號等基礎API功能,還可以支援第三方Playwright、Selenium、Puppeteer 等自動化框架來實現瀏覽器操作的自動化,擁有高級API權限的使用者還可以使用更多功能介面以及客製化的功能。
1.2. API調用案例
Puppeteer調用E蜘蛛指紋瀏覽器EspiderBrowser API案例[語言:javascript]
//javascript
const axios = require('axios');
const puppeteer = require('puppeteer-core');
const ids = '1'; //根據使用者自身環境ID修改
const startUrl = 'http://local.espiderbrowser.com:43820/api/v1/browser/start?ids=' + ids;
axios.get(startUrl).then(async (res) => {
console.log(res.data,res.data.code);
if(res.data.code === 200 && res.data.data && res.data.data.length > 0) {
try{
for(let i = 0; i < res.data.data.length; i++){
const item = res.data.data[i];
const ws = item.ws;
console.log('ws:',ws);
const browser = await puppeteer.connect({browserWSEndpoint: ws.url, defaultViewport:null});
const page = await browser.newPage();
await page.goto('https://www.espiderbrowser.com/');
await page.screenshot({ path: `./espiderbrowser-${item.id}.png` });
await browser.close();
console.log('截圖成功;接口工作正常');
}
} catch(err){
console.log(err.message);
}
}else{
console.error('解析參數出錯');
}
}).catch((err) => {
console.log('介面請求出錯,請檢查espiderbrowser服務是否正常啟動')
console.log('axios catch err:',err.message)
})
Playwright調用E蜘蛛指紋瀏覽器EspiderBrowser API案例[語言:javascript]
//javascript
const axios = require('axios');
const { chromium } = require('playwright');
const ids = '1'; //根據使用者自身環境ID修改
const startUrl = 'http://local.espiderbrowser.com:43820/api/v1/browser/start?ids=' + ids;
axios.get(startUrl).then(async (res) => {
console.log(res.data,res.data.code);
if(res.data.code === 200 && res.data.data && res.data.data.length > 0) {
try{
for(let i = 0; i < res.data.data.length; i++){
const item = res.data.data[i];
const ws = item.ws;
console.log('ws:',ws);
const browser = await chromium.connectOverCDP('http://'+ws.selenium);
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://www.espiderbrowser.com/');
await page.screenshot({ path: `./espiderbrowser-${item.id}.png` });
await browser.close();
console.log('截圖成功;接口工作正常');
}
} catch(err){
console.log(err.message);
}
}else{
console.error('解析參數出錯');
}
}).catch((err) => {
console.log('接口請求出錯,請檢查espiderbrowser服務是否正常啟動')
console.log('axios catch err:',err.message)
})
Selenium調用E蜘蛛指紋瀏覽器EspiderBrowser API案例[語言:python]
#python
import requests,time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import sys
ids = '1' #根據使用者自身環境ID修改
open_url = 'http://local.espiderbrowser.com:43820/api/v1/browser/start?ids=' + ids #start接口地址
close_url = 'http://local.espiderbrowser.com:43820/api/v1/browser/stop?ids=' + ids #close接口地址
resp = requests.get(open_url).json()
print(resp)
if (resp["code"] != 200 or resp["data"][0]["success"] != 'ok'):
print(resp["data"][0]["success"])
print("接口請求出錯,請檢查espiderbrowser服務是否正常啟動")
sys.exit()
try:
item = resp["data"][0]
chrome_driver = item["webdriver"]
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", item["ws"]["selenium"])
driver = webdriver.Chrome(chrome_driver, options=chrome_options)
print(driver.title)
driver.get("https://www.espiderbrowser.com")
time.sleep(1)
driver.save_screenshot('./selenium-espiderbrowser-' + str(ids) + '.png')
time.sleep(2)
driver.quit()
requests.get(close_url)
print('截圖成功;接口工作正常')
except webdriver.WebDriverException as e:
print('exception: ' + e)