mirror of
https://github.com/daijro/camoufox.git
synced 2026-08-19 00:00:58 +00:00
581cb5ce3f
- Fix chmod not working - Add more instructions to README - Cleanup comments
3.1 KiB
3.1 KiB
Camoufox Python Interface
This is the Python library for Camoufox.
Warning
This is still experimental and in active development!
Installation
First, install the camoufox package:
git clone --depth 1 https://github.com/camoufox
cd camoufox/pythonlib
pip install .
Then, download the Camoufox browser:
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() as browser:
page = browser.new_page()
page.goto("https://www.browserscan.net/")
Async API
from camoufox.async_api import AsyncCamoufox
async with AsyncCamoufox() as browser:
page = await browser.new_page()
await page.goto("https://www.browserscan.net/")
Parameters
Launches a new browser instance for Camoufox.
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/")