Menu

Code Samples

Code samples to automate AdsPower with Python, Javascript and Java.


Chrome code samples

Python Selenium The demo passed the test in selenium version 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 The demo passed the test in selenium version 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)
});

Javascript 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 code sample

* Requires Patch 2.6.9.4 and above, and firefox 123 and above.

Python Selenium The demo passed the test in selenium version 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...")


More demos:  https://github.com/AdsPower/localAPI

Previous
App Language
Next
Fonts
Last modified: 2025-09-22Powered by