Which proxy to use
For most scraping, Residential Lite is the cheapest way to get home IP addresses in the right country. Use Residential when you need a particular state or city, and Unlimited Datacenter for targets in the United States that do not block data centre addresses.
- Residentialfrom $2.64 per GB
- Residential Litefrom $0.69 per GB
- Unlimited Datacenterfrom $0.24 per hour
What to enter
A PiratProxies plan gives you four things: a host, a port, a username and a password. These are the values for Residential; the username and password are on your plan page.
| Host | resi.piratproxies.com |
|---|---|
| HTTP port | 8080 |
| SOCKS5 port | 1080 |
| Username | USERNAME |
| Password | from your plan page |
As one address:
http://USERNAME:PASSWORD@resi.piratproxies.com:8080The country and the session are chosen in the username, not in a separate setting. The generator on your plan page writes the username for you, and Targeting and sessions explains each part.
Steps
- The simplest route in Python is Selenium Wire, which sits between Selenium and the browser and adds the login.
- Pass the proxy in
seleniumwire_options. - Open an IP-check page to confirm the address.
Example
Python, with Selenium Wire
from seleniumwire import webdriver # pip install selenium-wire
options = {"proxy": {"http": "http://USERNAME:PASSWORD@resi.piratproxies.com:8080", "https": "http://USERNAME:PASSWORD@resi.piratproxies.com:8080"}}
driver = webdriver.Chrome(seleniumwire_options=options)
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()Replace USERNAME and PASSWORD with the login from your plan page. The example asks an IP-check address, so the output is the address your request left from.
Rotating or sticky
For crawling many pages with Selenium, leave the username without a session so every request leaves from a new IP address. For anything with steps that belong together, such as a login, a cart or a paginated search that sets cookies, add a session to the username so those requests share one address.
A sticky username looks like this:
USERNAME-country-us-time-600-session-a1b2c3d4If it does not work
--proxy-server=http://user:pass@host:portdoes not work in Chrome: the login is dropped and you get a password prompt or a 407.- Selenium Wire is no longer developed. A small local forwarder solves this: it listens on your computer without a login and adds the username and password on the way out. See proxies with a login in tools that only take IP and port.
- A
407error means the username or password was not accepted. Copy both again from your plan page, and check that nothing added a space or cut the username short. - If the IP address is in the wrong country, look at the username: the country code is part of it. More fixes.
Questions
Why does Chrome ask for a username and password?
Chrome ignores a login written into the proxy address. Use Selenium Wire, a local forwarder, or a tool such as SeleniumBase that adds the login for you.
Does Selenium work with SOCKS5 proxies?
Not with a username and password: Selenium can use SOCKS5 only without a login. Use the HTTP port, 8080, which works for both http and https sites.
Which PiratProxies proxy should I use with Selenium?
For most scraping, Residential Lite is the cheapest way to get home IP addresses in the right country. Use Residential when you need a particular state or city, and Unlimited Datacenter for targets in the United States that do not block data centre addresses.
Selenium is a product of its own makers. PiratProxies is not affiliated with it; the name is used here only to say what this guide is about. Use it within the rules of the sites you work with and our acceptable use policy.