菜单

脚本样例

脚本代码的样例,这里提供了python、Javascript和Java的编写样本


Chrome 脚本样例


Python selenium 3.141.0 编写样本

*该样本在selenium版本3.141.0测试通过


import requests,time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import sys
ads_id = "XXX"
apiKey = "your_api_key_here" # 定义 API Key 作为 token
open_url = "http://local.adspower.net:50325/api/v1/browser/start?user_id=" + ads_id
close_url = "http://local.adspower.net:50325/api/v1/browser/stop?user_id=" + ads_id
headers = {
 'Authorization': f'Bearer {apiKey}'
 }
 resp = requests.get(open_url, headers=headers).json()
 if resp["code"] != 0:
  print(resp["msg"])
   print("please check ads_id")
    sys.exit()
    chrome_driver = resp["data"]["webdriver"]
    chrome_options = Options()
    chrome_options.add_experimental_option("debuggerAddress", resp["data"]["ws"]["selenium"])
    driver = webdriver.Chrome(chrome_driver, options=chrome_options)
    print(driver.title)
    driver.get("https://www.browserscan.net/")
    time.sleep(5)
    driver.quit()
    requests.get(close_url, headers=headers)
                  


Python selenium 4.18.1 编写样本

*该样本在selenium版本4.18.1测试通过


import requests,time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
import sys
ads_id = "xxx"
apiKey = "your_api_key_here"  # 定义 API Key 作为 token
open_url = "http://local.adspower.com:50325/api/v1/browser/start?user_id=" + ads_id
close_url = "http://local.adspower.com:50325/api/v1/browser/stop?user_id=" + ads_id
headers = {
    'Authorization': f'Bearer {apiKey}'
}
resp = requests.get(open_url, headers=headers).json()
print(resp)
if resp["code"] != 0:
    print(resp["msg"])
    print("please check ads_id")
    sys.exit()
chrome_driver = resp["data"]["webdriver"]
service = Service(executable_path=chrome_driver)
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", resp["data"]["ws"]["selenium"])
driver = webdriver.Chrome(service=service, options=chrome_options)
print(driver.title)
driver.get("https://www.browserscan.net/")
time.sleep(5)
driver.quit()
requests.get(close_url, headers=headers)

                  

Python playwright 编写样本


import httpx
from playwright.sync_api import sync_playwright
 
 LOCAL_API_BASE = "http://127.0.0.1:50325"
 Browser_ID = "XXX"
 apiKey = "your_api_key_here" # 定义 API Key 作为 token
  
  headers = {
   'Authorization': f'Bearer {apiKey}'
   }
    
    response = httpx.post(f"{LOCAL_API_BASE}/api/v2/browser-profile/start", 
     headers=headers,
      json={
       "profile_id": Browser_ID,
        "last_opened_tabs": "0",
         "proxy_detection": "0",
          })
          if response.status_code == 200:
           data = response.json()
           print(data['data']['ws']['puppeteer'])
           with sync_playwright() as playwright:
           browser = playwright.chromium.connect_over_cdp(data['data']['ws']['puppeteer'])
           defaultContext = browser.contexts[0]
           page = defaultContext.pages[0]
           page.goto("https://www.browserscan.net")
           print(page.title())
           page.wait_for_timeout(10000)
           browser.close()

Javascript puppeteer编写样本


const axios = require('axios');
const puppeteer = require('puppeteer-core');
 
 const apiKey = 'your_api_key_here'; // 定义 API Key 作为 token
  
  axios.get('http://local.adspower.net:50325/api/v1/browser/start?user_id=XXX', {
   headers: {
    'Authorization': `Bearer ${apiKey}`
     }
     }).then(async (res) => {
      console.log(res.data);
       if(res.data.code === 0 && res.data.data.ws && res.data.data.ws.puppeteer) {
        try{
         const browser = await puppeteer.connect({browserWSEndpoint: res.data.data.ws.puppeteer, defaultViewport:null});
         const page = await browser.newPage();
         await page.goto('https://www.adspower.io');
         await page.screenshot({ path: './adspower.png' });
         await browser.close();
        } catch(err){
            console.log(err.message);
        }
    }
  }).catch((err) => {
      console.log(err)
  })
          

Javascript playwright 编写样本

const axios = require('axios');
const { chromium } = require('playwright');


const apiKey = 'your_api_key_here'; // 定义 API Key 作为 token


axios.get('http://local.adspower.net:50325/api/v1/browser/start?user_id=xxx', {
    headers: {
        'Authorization': `Bearer ${apiKey}`
    }
}).then(async (res) => {
    console.log(res.data);
    if (res.data.code === 0 && res.data.data.ws && res.data.data.ws.puppeteer) {
        try {
            const browser = await chromium.connectOverCDP(res.data.data.ws.puppeteer);
            const defaultContext = browser.contexts()[0];
            // const page = defaultContext.pages()[0];
            const page = await defaultContext.newPage();
            await page.goto('https://www.browserscan.net');
            // await browser.close();
        } catch (err) {
            console.log(err.message);
        }
    }
}).catch((err) => {
    console.log(err)
});

Java selenium代码片段

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;


public class AdsDemo {
    WebDriver driver;

    private String apiKey = "your_api_key_here"; // 定义 API Key 作为 token
    private String adsId = "xxxx";

    private WebDriver getDriver() {
        try {
            // 构建启动浏览器的 URL
            String openUrl = "http://local.adspower.net:50325/api/v1/browser/start?user_id=" + adsId;

            // 发送 HTTP GET 请求,带 Authorization Bearer Token
            JsonObject result = makeHttpRequest(openUrl);

            // 检查响应状态
            if (result.get("code").getAsInt() != 0) {
                System.out.println("Error: " + result.get("msg").getAsString());
                System.out.println("Please check ads_id");
                return null;
            }

            // 获取返回的数据
            JsonObject data = result.getAsJsonObject("data");
            String chromeDriver = data.get("webdriver").getAsString();
            String debuggerAddress = data.getAsJsonObject("ws").get("selenium").getAsString();

            // 设置 webdriver 路径
            System.setProperty("webdriver.chrome.driver", chromeDriver);

            // 配置 Chrome 选项
            ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("debuggerAddress", debuggerAddress);

            // 创建 WebDriver 实例
            driver = new ChromeDriver(options);
            driver.get("https://www.browserscan.net/");

            return driver;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }


    private JsonObject makeHttpRequest(String url) throws Exception {
        // 创建 HTTP 客户端
        HttpClient client = HttpClient.newHttpClient();

        // 构建请求,添加 Authorization Bearer Token header
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .header("Authorization", "Bearer " + apiKey)
                .GET()
                .build();
        // 发送请求并获取响应
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        // 解析 JSON 响应
        return JsonParser.parseString(response.body()).getAsJsonObject();
    }

    public void closeBrowser() {
        try {
            if (driver != null) {
                driver.quit();
            }
            // 关闭浏览器的 API 请求
            String closeUrl = "http://local.adspower.net:50325/api/v1/browser/stop?user_id=" + adsId;
            makeHttpRequest(closeUrl);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        AdsDemo demo = new AdsDemo();
        WebDriver driver = demo.getDriver();

        if (driver != null) {
            System.out.println("Browser started successfully!");
            System.out.println("Title: " + driver.getTitle());

            // 等待用户输入后关闭
            System.out.println("Press Enter to close browser...");
            try {
                System.in.read();
            } catch (Exception e) {
                e.printStackTrace();
            }
            demo.closeBrowser();
        }
    }
}
           


Firefox 脚本样例

*需升级 Patch 2.6.9.4 及以上,且firefox 123 及以上内核


Python selenium 编写样本

*该样本在selenium版本4.18.1测试通过

import requests,time
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
import sys
ads_id = "xxx"
apiKey = "your_api_key_here"  # 定义 API Key 作为 token
open_url = "http://local.adspower.com:50325/api/v1/browser/start?user_id=" + ads_id
close_url = "http://local.adspower.com:50325/api/v1/browser/stop?user_id=" + ads_id
headers = {
    'Authorization': f'Bearer {apiKey}'
}
resp = requests.get(open_url, headers=headers).json()
print(resp)
if resp["code"] != 0:
    print(resp["msg"])
    print("please check ads_id")
    sys.exit()
firefox_driver = resp["data"]["webdriver"]
port = resp["data"]["marionette_port"]
#driver 实际路径
firefox_services = Service(executable_path=firefox_driver, service_args=['--marionette-port', port, '--connect-existing'])
driver = webdriver.Firefox(service=firefox_services)
driver.get('https://www.browserscan.net')
input("Press Enter to exit...")


查看更多样例: https://github.com/AdsPower/localAPI

上一个
界面语言
下一个
字体
最近修改: 2025-09-22Powered by