Skip to main content

This Python package provides convenient access to the Local API REST interface of the Kameleo Client.

Project description

Kameleo Local API Client

Kameleo is a complete and integrated solution for browser fingerprinting protection, and also for easy browser automation using W3C WebDriver. This Python package provides convenient access to the Local API REST interface of the Kameleo Client.

Features

  • Protection from Selenium/WebDriver detection
  • Start unlimited number of profiles with different browser fingerprints
  • Use authenticated HTTP/SOCKS/SSH proxies in browsers
  • Create isolated browsing environments simultaneously
  • Use real browser profiles of Chrome, Firefox, Safari and Edge
  • Edit, Import or Export browser cookies
  • Modify WebRTC parameters
  • Modify Geolocation settings
  • Modify WebGL fingerprint
  • Modify 2D Canvas fingerprint
  • Modify Navigator properties
  • Modify Screen resolution

Quickstart Guide

1. Install package

pip install kameleo.local_api_client

2. Start the Kameleo.CLI on your computer

./Kameleo.CLI.exe email="your@email.com" password="Pa$$w0rd"

Note: You need Automation package of Kameleo to access the features described below.

3. Start a browser with out-of-the-box fingerprinting protection

from kameleo.local_api_client.kameleo_local_api_client import KameleoLocalApiClient
from kameleo.local_api_client.builder_for_create_profile import BuilderForCreateProfile

client = KameleoLocalApiClient()
base_profiles = client.search_base_profiles(
    device_type='desktop',
    browser_product='chrome'
)

# Create a new profile with recommended settings
# for browser fingerprinting protection
create_profile_request = BuilderForCreateProfile \
    .for_base_profile(base_profiles[0].id) \
    .set_recommended_defaults() \
    .build()
profile = client.create_profile(body=create_profile_request)

# Start the browser
client.start_profile(profile.id)

Automate browsers with W3C WebDriver

Kameleo uses a WebDriver compatible server to control the browser. WebDriver is a W3C specification and industry standard which provides a platform and HTTP protocol to interact with a browser.

from kameleo.local_api_client.kameleo_local_api_client import KameleoLocalApiClient
from kameleo.local_api_client.builder_for_create_profile import BuilderForCreateProfile
from selenium import webdriver

kameleoBaseUrl = 'http://localhost:5050'
client = KameleoLocalApiClient(kameleoBaseUrl)

# Search Chrome Base Profiles
base_profiles = client.search_base_profiles(
    device_type='desktop',
    browser_product='chrome'
)

# Create a new profile with recommended settings
# for browser fingerprinting protection
create_profile_request = BuilderForCreateProfile \
    .for_base_profile(base_profiles[0].id) \
    .set_recommended_defaults() \
    .build()
profile = client.create_profile(body=create_profile_request)

# Start the browser
client.start_profile(profile.id)

# Connect to the running browser instance using WebDriver
options = webdriver.ChromeOptions()
options.add_experimental_option("kameleo:profileId", profile.id)
driver = webdriver.Remote(
    command_executor=f'{kameleoBaseUrl}/webdriver',
    options=options
)

# Use any WebDriver command to drive the browser
# and enjoy full protection from Selenium detection methods
driver.get('https://google.com')
driver.find_element('name', 'q').send_keys('Kameleo\n')
print(driver.title)

# Stop the browser by stopping the Kameleo profile
client.stop_profile(profile.id)

Example codes

Several examples have been prepared in a different repository to showcase the most interesting features. Feel free to create a pull request to add new example codes.

  • Finding base profiles
  • Creating profiles with custom options
  • Updating profiles with new settings
  • How to start a profile
  • Using WebDriver with Local API
  • Adding an HTTP, SOCKS or SSH proxy to profile
  • Saving/Loading a browsing session to/from a .kameleo file
  • Modify and Delete browser cookies
  • Hooking up Kameleo with an external browser (Puppeteer)

Endpoints

Available API endpoints with exhaustive descriptions and example values are documented on this SwaggerHub page. This package has built-in IntelliSense support in Visual Studio Code, no extra package installation needed.

License

This project is released under MIT License. Please refer the LICENSE.txt for more details.

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

kameleo.local_api_client-2.2.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kameleo.local_api_client-2.2.0-py2.py3-none-any.whl (77.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file kameleo.local_api_client-2.2.0.tar.gz.

File metadata

  • Download URL: kameleo.local_api_client-2.2.0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.0

File hashes

Hashes for kameleo.local_api_client-2.2.0.tar.gz
Algorithm Hash digest
SHA256 2dec957985b4bfb9e7bc8f883ace6727521c31c1255ad50d0d35e548554a1372
MD5 6abec22e044d8807eae316874f5c1d5c
BLAKE2b-256 9413cf86abe5f894cd349f850671f6f7e19f9980a65d247a20891b453dc7fe87

See more details on using hashes here.

File details

Details for the file kameleo.local_api_client-2.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: kameleo.local_api_client-2.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 77.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.0

File hashes

Hashes for kameleo.local_api_client-2.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7aebc2ebf6afe0bba5e730bb7ed9b9aa0850b46ea8c9b9b103d6b60d88dc023f
MD5 78514faa1cdb7cc6824fded0b8253555
BLAKE2b-256 5afce27659d1cef1f3b943e89dceea6145124768d8b93fe5ae089ff0ce4365e7

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