Wrapper around Playwright to help launch Camoufox
Project description
Camoufox Python Interface
Lightweight wrapper around the Playwright API to help launch Camoufox.
[!WARNING] This is still experimental and in active development!
Installation
First, install the camoufox
package:
pip install -U camoufox
Then, download the Camoufox browser:
Windows
camoufox fetch
MacOS & Linux
python3 -m camoufox fetch
To uninstall, run camoufox remove
.
Usage
Camoufox is fully compatible with your existing Playwright code. You only have to change your browser initialization:
Sync API
from camoufox.sync_api import Camoufox
with Camoufox(headless=False) as browser:
page = browser.new_page()
page.goto("https://example.com/")
Async API
from camoufox.async_api import AsyncCamoufox
async with AsyncCamoufox(headless=False) as browser:
page = await browser.new_page()
await page.goto("https://example.com")
Parameters
Launches a new browser instance for Camoufox.
Accepts all Playwright Firefox launch options, along with the following:
Parameters:
playwright (Playwright):
The playwright instance to use.
config (Optional[Dict[str, Any]]):
The configuration to use.
addons (Optional[List[str]]):
The addons to use.
fingerprint (Optional[Fingerprint]):
The fingerprint to use.
exclude_addons (Optional[List[DefaultAddons]]):
The default addons to exclude, passed as a list of camoufox.DefaultAddons enums.
screen (Optional[browserforge.fingerprints.Screen]):
The screen constraints to use.
os (Optional[ListOrString]):
The operating system to use for the fingerprint. Either a string or a list of strings.
user_agent (Optional[ListOrString]):
The user agent to use for the fingerprint. Either a string or a list of strings.
fonts (Optional[List[str]]):
The fonts to load into Camoufox, in addition to the default fonts.
args (Optional[List[str]]):
The arguments to pass to the browser.
executable_path (Optional[str]):
The path to the Camoufox browser executable.
**launch_options (Dict[str, Any]):
Additional Firefox launch options.
Config
Camoufox config data can be passed as a dictionary to the config
parameter:
from camoufox import Camoufox
with Camoufox(
config={
'webrtc:ipv4': '123.45.67.89',
'webrtc:ipv6': 'e791:d37a:88f6:48d1:2cad:2667:4582:1d6d',
}
) as browser:
page = browser.new_page()
page.goto("https://www.browserscan.net/")
BrowserForge Integration
Camoufox is fully compatible with BrowserForge.
By default, Camoufox will use a random fingerprint. You can also inject your own Firefox Browserforge fingerprint into Camoufox with the following example:
from camoufox.sync_api import Camoufox
from browserforge.fingerprints import FingerprintGenerator
fg = FingerprintGenerator(browser='firefox')
# Launch Camoufox with a random Firefox fingerprint
with Camoufox(fingerprint=fg.generate()) as browser:
page = browser.new_page()
page.goto("https://www.browserscan.net/")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for camoufox-0.1.0b2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af0bf96890e138c2ba9ea152e5ccdab8a85700fd3b64b5bb1fba31b084e2357c |
|
MD5 | a7735fa1b744eec5d8a7f6f135ea18d1 |
|
BLAKE2b-256 | 1a3e28e9849dcd20e15277aff1a958a78043868254ebbf9a3313fe535f374ccf |