Metadata-Version: 2.1
Name: fake-proxy
Version: 0.1.1
Summary: Library that finds public proxies
Home-page: https://github.com/machinia/fake-proxy
Author: Pablo Ahumada, Jorge Capona
Author-email: pablo.ahumadadiaz@gmail.com, jcapona@gmail.com
License: MIT
Keywords: proxy proxies rotate scrape
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: System
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: beautifulsoup4 (<5,>=4.8)
Requires-Dist: requests (<3,>=2.22)

fake-proxy
==========

Open source library that finds public proxies from several sources.


Usage
-----

The package must be imported and used through it's API.


`get(amount, proxy_type)`
~~~~~~~~~~~~~~~~~~~~~~~~~

The main function is `get`, which receives 2 parameters:
- `amount` which specifies the amount of proxies required
- `proxy_type` which specifies the type of proxy (https, http, socks4)

.. code-block:: python

    >>> import fake_proxy
    >>> fake_proxy.get()
    [{'ip': '188.166.83.20', 'port': '3128', 'country_code': 'NL', 'country': 'Netherlands', 'type': 'http'}]
    >>> fake_proxy.get(amount=3)
    [{'ip': '89.20.135.204', 'port': '10000', 'country_code': 'RU', 'country': 'Russian Federation', 'type': 'http'},
    {'ip': '165.22.154.157', 'port': '3128', 'country_code': 'US', 'country': 'United States', 'type': 'http'},
    {'ip': '62.182.206.19', 'port': '37715', 'country_code': 'RU', 'country': 'Russian Federation', 'type': 'http'}]
    >>> fake_proxy.get(proxy_type='https')
    [{'ip': '36.92.108.150', 'port': '3128', 'country_code': 'ID', 'country': 'Indonesia', 'type': 'https'}]


`get_by_source(source_name, amount, proxy_type)`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Similar to `get()`, but lets you specify a particular source from which to obtain a proxy.
- `source_name`: name of the source from which to get a proxy
- `amount`: specifies the amount of proxies required
- `proxy_type`: specifies the type of proxy (https, http, socks4)

.. code-block:: python

    >>> import fake_proxy
    >>> fake_proxy.get_from_source(source_name='free-proxy-list.net', amount=2, proxy_type='http')
    [{'ip': '76.87.101.188', 'port': '38875', 'country_code': 'US', 'country': 'United States', 'type': 'http'},
    {'ip': '62.182.206.19', 'port': '37715', 'country_code': 'RU', 'country': 'Russian Federation', 'type': 'http'}]


`proxy_sources()`
~~~~~~~~~~~~~~~~~

Returns a list with the names of all the sources from which the library fetches proxies.

.. code-block:: python

    >>> import fake_proxy
    >>> fake_proxy.proxy_sources()
    {'https': ['free-proxy-list.net'],
    'socks4': ['socks-proxy.net'],
    'http': ['free-proxy-list.net']}


`reload()`
~~~~~~~~~~

Fetches new proxies from the proxy sources.


Sources
-------

For the moment, the library fetches the proxies from the following sources:

+------------------------------+-------------+
| Source URL                   | Proxy Types |
+==============================+=============+
| https://free-proxy-list.net/ | HTTP, HTTPS |
+------------------------------+-------------+
| https://www.sslproxies.org/  | HTTPS       |
+------------------------------+-------------+
| https://www.socks-proxy.net/ | SOCKS4      |
+------------------------------+-------------+


Installation
------------

Latest release through PyPI:

.. code-block:: sh

    $ pip install fake-proxy

Development version:

.. code-block:: sh

    $ git clone git@github.com:machinia/fake-proxy.git
    $ cd fake-proxy
    $ pip install -e .


Contribution
------------

Contributions are welcome! Feel free to report bugs or open an issue if you feel a new feature is needed. Pull requests are welcome!



