The code snippets below are in Python, but the instructions apply to any programming language. Additionally, this tutorial is relevant to all tools that utilize Selenium as a base, such as Selenium Wire, Selenium Stealth, and Undetected ChromeDriver.
Integrate Selenium with ZenRows’ Proxies to Avoid Getting Blocked
ZenRows offers residential proxies in 190+ countries that auto-rotate the IP address for you and offer Geolocation and http/https protocols. Integrate them into Selenium to appear as a different user every time so that your chances of getting blocked are reduced exponentially. You have two ways to get a proxy with ZenRows, one is via Residential Proxies, where you get our proxy, and it’s charged by the bandwidth; the other way is via the Universal Scraper API’s Premium Proxy, which is our residential proxy for the API, and you are charged by the request, depending on the params you choose.For this tutorial, we’ll focus on the Residential Proxies, the recommended ZenRows proxy for Selenium

scraper.py
Configure your Residential Proxy in Selenium
To use an authenticated proxy in Selenium, you can utilize the selenium-wire library, as Chrome does not natively support authenticated proxies. Selenium Wire extends Selenium’s functionality, allowing you to easily configure and use proxies in your scraping projects.1
Install Selenium Wire
First, install Selenium Wire:
2
Configure the Residential Proxy in Selenium
With Selenium Wire installed, you can configure the proxy at the browser level in Selenium. Below is an example configuration where you should replace
<YOUR_USERNAME> and <YOUR_PASSWORD> with the actual credentials.scraper.py
3
Run Your Script
Execute your script using Python:
Troubleshooting
Chromedriver Version Incompatibility or Chrome Not Found Error
If you encounter an error likechromedriver version detected in PATH might not be compatible with the detected Chrome version or session not created from unknown error: no chrome binary at /usr/bin/google-chrome, this indicates that the version of Chromedriver in your system’s PATH is incompatible with the installed version of Chrome. Additionally, this error may also occur if the Chrome binary is not found at the expected location.
To resolve this issue, explicitly specify the path to the Chrome executable in your Selenium configuration. You can do this by setting the executable_path option to the correct path where Chrome is installed on your system.
scraper.py
Invalid SSL Certificate
You might encounter anERR_CERT_AUTHORITY_INVALID error due to SSL certificate issues. These errors can prevent your scraper from accessing the content you need.
Instruct Chrome to ignore SSL/certificate errors by setting the accept_insecure_certs option to True.
scraper.py
Stopped by Bot Detection with Selenium: CAPTCHAs, WAFs, and Beyond
Many websites employ advanced anti-bot measures like CAPTCHAs and Web Application Firewalls (WAFs) to prevent automated scraping. Simply using proxies may not be enough to bypass these protections. Instead of relying solely on Selenium, consider using ZenRows’ Universal Scraper API, which provides:- JavaScript Rendering and Interaction Simulation: Similar to Selenium but optimized with anti-bot bypass capabilities.
- Comprehensive Anti-Bot Toolkit: ZenRows offers advanced tools to overcome complex anti-scraping solutions.
Pricing
ZenRows operates on a bandwidth usage model on the Residential Proxies; it is pay-per-success on the Universal Scraper API (that means you only pay for requests that produce the desired result). To optimize your scraper’s success rate, fully replace Selenium with ZenRows. Different pages on the same site may have various levels of protection, but using the parameters recommended above will ensure that you are covered. ZenRows offers a range of plans, starting at just $69 monthly. For more detailed information, please refer to our pricing page.Frequently Asked Questions (FAQs)
Why do I need a proxy for Selenium?
Why do I need a proxy for Selenium?
Selenium is widely recognized by websites’ anti-bot systems, which can block your requests. Using residential proxies from ZenRows allows you to rotate IP addresses and appear as a legitimate user, helping to bypass these restrictions and reduce the chances of being blocked.
How do I know if my proxy is working?
How do I know if my proxy is working?
You can test the proxy connection by running the script provided in the tutorial and checking the output from
httpbin.io/ip. If the proxy is working, the response will display a different IP address than your local machine’s.What should I do if my requests are blocked?
What should I do if my requests are blocked?
Many websites employ advanced anti-bot measures, such as CAPTCHAs and Web Application Firewalls (WAFs), to prevent automated scraping. Simply using proxies may not be enough to bypass these protections.Instead of relying solely on proxies, consider using ZenRows’ Universal Scraper API, which provides:
- JavaScript Rendering and Interaction Simulation: Optimized with anti-bot bypass capabilities.
- Comprehensive Anti-Bot Toolkit: ZenRows offers advanced tools to overcome complex anti-scraping solutions.