selenium-authenticated-proxy


Nameselenium-authenticated-proxy JSON
Version 1.1.1 PyPI version JSON
download
home_pagehttps://github.com/bubblegumsoldier/selenium-authenticated-proxy
SummaryA python package to add authenticated proxy support to selenium.
upload_time2024-05-08 08:22:25
maintainerNone
docs_urlNone
authorHenry Müssemann
requires_pythonNone
licenseMIT
keywords proxy selenium auth selenium
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Selenium Authenticated Proxy Helper

## Overview

The Selenium Authenticated Proxy Helper is a Python utility designed to seamlessly handle proxy authentication when using Selenium WebDriver. This package generates a Chrome extension that takes care of proxy authentication, allowing you to focus more on web scraping or automation tasks, without worrying about the intricacies of proxy setup.

## Features

- **Proxy Authentication**: Supports username and password authentication for proxy servers.
- **Unique Identification**: Generates a unique Chrome extension for each different set of proxy credentials.
- **Ease of Use**: Simple API to generate and use the extension with your existing Selenium Chrome WebDriver setup.
- **Temporary Storage**: Optionally, specify a folder for temporary storage of generated Chrome extensions.

## Requirements

- Python 3.6 or higher
- Selenium WebDriver

## Installation

You can install this package via pip:

```bash
pip install selenium-authenticated-proxy
```

## Usage

### Basic Usage

Here is how you can set up the authenticated proxy for Selenium's Chrome WebDriver:

```python
from selenium import webdriver
from selenium_authenticated_proxy import SeleniumAuthenticatedProxy

# Initialize Chrome options
chrome_options = webdriver.ChromeOptions()

# Initialize SeleniumAuthenticatedProxy
proxy_helper = SeleniumAuthenticatedProxy(proxy_url="http://username:password@proxy-server.com")

# Enrich Chrome options with proxy authentication
proxy_helper.enrich_chrome_options(chrome_options)

# Start WebDriver with enriched options
driver = webdriver.Chrome(chrome_options=chrome_options)

# Your automation or scraping code here
```

### Custom Temporary Folder

You can specify a custom folder for temporary storage of generated Chrome extensions.

```python
proxy_helper = SeleniumAuthenticatedProxy(proxy_url="http://username:password@proxy-server.com", tmp_folder="/path/to/tmp/folder")
```

To enable the authentication to work properly a chrome extension is being generated (Thanks to [itsmnthn](https://stackoverflow.com/a/55582859/3691763) with an [improvement for manifest v3](https://bugs.chromium.org/p/chromium/issues/detail?id=1135492)).
If the URl doesn't change the extension will not be regenerated. The URL is hashed so that only when the URL has changed (or the tmp folder has changed) a new zip file will be generated.

### Specific issues with headless chrome

If you want to use headless chrome, this functionality only works if you use the following method:

```python
ops.add_argument('--headless=new')
```

The `--headless` method or also the `--headless=chrome` method does not work anymore!

## License

This project is licensed under the MIT License - see the LICENSE.md file for details.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bubblegumsoldier/selenium-authenticated-proxy",
    "name": "selenium-authenticated-proxy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "proxy, selenium, auth, selenium",
    "author": "Henry M\u00fcssemann",
    "author_email": "hm@freezingdata.de",
    "download_url": null,
    "platform": null,
    "description": "# Selenium Authenticated Proxy Helper\n\n## Overview\n\nThe Selenium Authenticated Proxy Helper is a Python utility designed to seamlessly handle proxy authentication when using Selenium WebDriver. This package generates a Chrome extension that takes care of proxy authentication, allowing you to focus more on web scraping or automation tasks, without worrying about the intricacies of proxy setup.\n\n## Features\n\n- **Proxy Authentication**: Supports username and password authentication for proxy servers.\n- **Unique Identification**: Generates a unique Chrome extension for each different set of proxy credentials.\n- **Ease of Use**: Simple API to generate and use the extension with your existing Selenium Chrome WebDriver setup.\n- **Temporary Storage**: Optionally, specify a folder for temporary storage of generated Chrome extensions.\n\n## Requirements\n\n- Python 3.6 or higher\n- Selenium WebDriver\n\n## Installation\n\nYou can install this package via pip:\n\n```bash\npip install selenium-authenticated-proxy\n```\n\n## Usage\n\n### Basic Usage\n\nHere is how you can set up the authenticated proxy for Selenium's Chrome WebDriver:\n\n```python\nfrom selenium import webdriver\nfrom selenium_authenticated_proxy import SeleniumAuthenticatedProxy\n\n# Initialize Chrome options\nchrome_options = webdriver.ChromeOptions()\n\n# Initialize SeleniumAuthenticatedProxy\nproxy_helper = SeleniumAuthenticatedProxy(proxy_url=\"http://username:password@proxy-server.com\")\n\n# Enrich Chrome options with proxy authentication\nproxy_helper.enrich_chrome_options(chrome_options)\n\n# Start WebDriver with enriched options\ndriver = webdriver.Chrome(chrome_options=chrome_options)\n\n# Your automation or scraping code here\n```\n\n### Custom Temporary Folder\n\nYou can specify a custom folder for temporary storage of generated Chrome extensions.\n\n```python\nproxy_helper = SeleniumAuthenticatedProxy(proxy_url=\"http://username:password@proxy-server.com\", tmp_folder=\"/path/to/tmp/folder\")\n```\n\nTo enable the authentication to work properly a chrome extension is being generated (Thanks to [itsmnthn](https://stackoverflow.com/a/55582859/3691763) with an [improvement for manifest v3](https://bugs.chromium.org/p/chromium/issues/detail?id=1135492)).\nIf the URl doesn't change the extension will not be regenerated. The URL is hashed so that only when the URL has changed (or the tmp folder has changed) a new zip file will be generated.\n\n### Specific issues with headless chrome\n\nIf you want to use headless chrome, this functionality only works if you use the following method:\n\n```python\nops.add_argument('--headless=new')\n```\n\nThe `--headless` method or also the `--headless=chrome` method does not work anymore!\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE.md file for details.\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A python package to add authenticated proxy support to selenium.",
    "version": "1.1.1",
    "project_urls": {
        "Homepage": "https://github.com/bubblegumsoldier/selenium-authenticated-proxy"
    },
    "split_keywords": [
        "proxy",
        " selenium",
        " auth",
        " selenium"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "822e7c59b06c1a3aa4cc7b45bc84a620b50574bdc50eafec3dd762e72b0977b7",
                "md5": "fcae0709fdb9493d590eca8379021ef7",
                "sha256": "be71c587ed48456e458f3b2f02cc62d3fcd5c63352ae99e13a7efcc83406a7b9"
            },
            "downloads": -1,
            "filename": "selenium_authenticated_proxy-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fcae0709fdb9493d590eca8379021ef7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 7057,
            "upload_time": "2024-05-08T08:22:25",
            "upload_time_iso_8601": "2024-05-08T08:22:25.134420Z",
            "url": "https://files.pythonhosted.org/packages/82/2e/7c59b06c1a3aa4cc7b45bc84a620b50574bdc50eafec3dd762e72b0977b7/selenium_authenticated_proxy-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-08 08:22:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bubblegumsoldier",
    "github_project": "selenium-authenticated-proxy",
    "github_not_found": true,
    "lcname": "selenium-authenticated-proxy"
}
        
Elapsed time: 0.23543s