Free-proxy
https://www.sslproxies.org/, https://www.us-proxy.org/, https://free-proxy-list.net/uk-proxy.html and https://free-proxy-list.net and use it in your script
Get free working proxy fromFreeProxy class scrapes proxies from https://www.sslproxies.org/, https://www.us-proxy.org/, https://free-proxy-list.net/uk-proxy.html and https://free-proxy-list.net and checks if proxy is working. There is possibility to filter proxies by country and acceptable timeout. You can also randomize list of proxies from where script would get first working proxy.
You can use it in sending request through custom proxy, with selenium or wherever you want.
Returns proxy as string:
'http://113.160.218.14:8888'
Requirements
- Python3
- Request library
- Lxml library
Installation
pip install free-proxy
Usage with examples
First import Free Proxy that way:
from fp.fp import FreeProxy
Options
Parameter | Type | Example | Default value |
---|---|---|---|
country_id | list | ['US', 'BR'] | None |
timeout | float > 0 | 0.1 | 0.5 |
rand | bool | True | False |
anonym | bool | True | False |
elite | bool | True | False |
bool,None | False | None | |
https | bool | True | False |
- No parameters Get first working proxy from https://www.sslproxies.org/. When no proxy is working, repeat once again from https://free-proxy-list.net
proxy = FreeProxy().get()
country_id
parameter Get first working proxy from specified list of countries (from https://www.sslproxies.org/). If there is no valid proxy from specified list check all countries from https://free-proxy-list.net.
proxy = FreeProxy(country_id=['US', 'BR']).get()
country_id
for US and GB You can set country_id to US and GB to get proxy from United States or United Kingdom. In that case proxies will be scrapped from https://www.us-proxy.org/ (US
) or https://free-proxy-list.net/uk-proxy.html (GB
) page. If there is no valid proxy from specified list check all countries
proxy = FreeProxy(country_id=['US']).get()
proxy = FreeProxy(country_id=['GB']).get()
timeout
parameter Timeout is parameter for checking if proxy is valid. If test site doesn't respond in specified time script marks this proxy as invalid. Defaulttimeout=0.5
. You can change it by defining specified timeout eg.timeout=1
.
proxy = FreeProxy(timeout=1).get()
rand
parameter Shuffles proxy list from https://www.sslproxies.org/. Defaultrand=False
and searches for working proxy from newest to oldest (as they are listed in https://www.sslproxies.org/).
proxy = FreeProxy(rand=True).get()
anonym
parameter Return only those proxies that are marked as anonymous. Defaults toanonym=False
proxy = FreeProxy(anonym=True).get()
elite
parameter Return only those proxies that are marked as 'elite proxy'. Defaults toelite=False
.
proxy = FreeProxy(elite=True).get()
Note that elite proxies are anonymous at the same time, thus anonym=True
automatically when elite=True
.
google
parameter IfTrue
it returns only those proxies that are marked as google, ifFalse
- as no google. Defaults togoogle=None
that returns all proxies.
proxy = FreeProxy(google=True).get()
-
https
parameter If true it returns only those proxies that are marked as HTTPS. Defaults tohttps=False
- i.e. HTTP proxy (for HTTP websites).Note that HTTPS proxy is for both HTTP and HTTPS websites.
proxy = FreeProxy(https=True).get()
You can combine parameters:
proxy = FreeProxy(country_id=['US', 'BR'], timeout=0.3, rand=True).get()
If there are no working proxies with provided parameters script raises FreeProxyException
with There are no working proxies at this time.
message.
CHANGELOG
[1.1.1] - 2023-02-18
- Fixed https parameter error
- Fixed additional loop issue when no proxy was found
[1.1.0] - 2022-11-12
- Added new website to get proxies from https://free-proxy-list.net
- Added new website to get proxies from https://free-proxy-list.net/uk-proxy.html
- Added new website to get proxies from https://www.us-proxy.org/
- Change lxml version to 4.9.1
[1.0.6] - 2022-01-23
- Added
google
parameter - Added
https
parameter
[1.0.5] - 2022-01-07
- Added
elite
parameter - Add exception class and raise exception instead of system exit
- Change lxml version to 4.6.5
[1.0.4] - 2021-11-13
- Fix proxy list default length
[1.0.3] - 2021-08-18
- Change XPatch due to SSL proxies page update
- Change lxml version
[1.0.2] - 2020-09-03
- Added
anonym
parameter
[1.0.1] - 2020-03-19
- Fix typos in readme
- Fix urrlib3 exception
urllib3.exceptions.ProxySchemeUnknown: Not supported proxy scheme None
, - Fix imports
[1.0.0] - 2019-02-04
- Initial release
License
MIT
Free Software!