How to use Selenium for web scraping

How to use Selenium for web scraping

This is the only step-by-step guide you will need in order to start collecting web data from target sites, and saving them as CSV files in under 10 minutes

In this article we will discuss:

Selenium: What it is, and how it is used

Selenium is an open-source software that includes a variety of tools, and libraries that enable browser automation activities, including:

  • Web page-based element actions/retrieval (e.g. close, back, get_cookie, get_screenshot_as_png, get_window_size)
  • Site testing 
  • Managing alert prompts, and cookies (adding/removing)
  • Form element submission 
  • Data collection / web scraping 

It is compatible with most browsers including Firefox, Chrome, Safari, and Internet Browser. And can be utilized in order to write tests in a variety of programming languages such as Python, Node.js, C#, JavaScript, and PHP. 
For your convenience, I have included a link to the official Selenium 4.1.5 documentation library.

Puppeteer vs. Selenium

For those of you debating, and contemplating Puppeteer vs. Selenium – I will say that Puppeteer may serve you better if you plan on focusing mainly on JavaScript, and Chrome. Selenium, on the other hand, may be the better choice if you are looking to work across multiple different browsers in order to test browser applications and/or perform web data collection.

A step-by-step guide to scraping with Selenium 

Step One: Install Selenium 

For those of you that have pip (i.e. package installer for Python) on your computers, all you need to do is open it up and type in:

pip install -U selenium

Otherwise, you can download PyPI, unarchive it, and run:

python setup.py install

Do note that you will need a driver so that Selenium can interface with your browser of choice. Here are links to some of the most popular browser drivers for your convenience:

Let’s use Firefox as an example browser. You would accomplish this by opening up Firefox, going to a web page, say Yahoo, searching for “seleniumhq”, and then closing the browser. Here’s what that would look like in code:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()

browser.get('http://www.yahoo.com')
assert 'Yahoo' in browser.title

elem = browser.find_element(By.NAME, 'p')  # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN)

browser.quit()

Step Two: Importing supporting packages

Selenium is not used in isolation but rather in tandem with other programs including Pandas (an easy to use open source data analysis tool), for example. Here is what you should be typing in, in order to accomplish this:

from selenium import webdriver
import time
import pandas as pd 

Step Three: Defining variables 

In this step we will define our target folder, search query, and target site. In this example we will be aiming to map different job opportunities as displayed by competing companies on LinkedIn. What you type in should look something like this:

FILE_PATH_FOLDER = 'F:....Competitive_Analysis'
search_query = 'https://www.linkedin.com/q-chief-financial-officer-jobs.html'
driver = webdriver.Chrome(executable_path='C:/.../chromedriver_win32/chromedriver.exe')
job_details = []

Step Four: HTML tag inspection

HTML sites typically have a unique identifier for each tag that is associated with information being displayed on any given target site. The technique here is to leverage this HTML site property in order to crawl the target site at hand. You can accomplish this by:

  • Right clicking anywhere on the page, and hitting ‘inspect’
  • And then either clicking the arrow that appears at the top left hand corner or by pushing the Ctrl+Shift+C keys in order to inspect a specific element and obtain the desired HTML tag 

Here’s what that looks like:

driver.get(search_query)
time.sleep(5)
job_list = driver.find_elements_by_xpath("//div[@data-tn-component='organicJob']")

Step Five: Specific data point extraction

We will extract our target data points by utilizing the ‘find_elements_by_xpath’ attribute on the Selenium web driver, and quit the driver, and close the browser once the target data has been collected. 

We will target data points as follows:

  • Job title
  • Company
  • Job location
  • Job description
  • Date job was uploaded 

Here’s what that looks like:

for each_job in job_list:
    # Getting job info
    job_title = each_job.find_elements_by_xpath(".//h2[@class='title']/a")[0]
    job_company = each_job.find_elements_by_xpath(".//span[@class='company']")[0]
    job_location = each_job.find_elements_by_xpath(".//span[@class='location accessible-contrast-color-location']")[0]
    job_summary = each_job.find_elements_by_xpath(".//div[@class='summary']")[0]
    job_publish_date = each_job.find_elements_by_xpath(".//span[@class='date ']")[0]
    # Saving job info 
    job_info = [job_title.text, job_company.text, job_location.text, job_summary.text, job_publish_date.text]
 # Saving into job_details
    job_details.append(job_info)
driver.quit()

Please note that these selectors can be changed by the target, so people should confirm that the selectors in question are correct, do not assume that they are.

Step Six: Saving the data in preparation for output

At this point you will want to add columns to the data frame and make use of the ‘to_csv’ attribute in order to save all of the obtained data in CSV format as follows:

job_details_df = pd.DataFrame(job_details)
job_details_df.columns = ['title', 'company', 'location', 'summary', 'publish_date']
job_details_df.to_csv('job_details.csv', index=False)

Your desired CSV file will be downloaded to the following location:  FILE_PATH_FOLDER

That’s it, you have just successfully completed your first web scraping job with Selenium.

Integrating proxies with Selenium 

Integrating proxies  with Selenium can help you:

  • Perform data collection in variety of geolocations
  • Enable you to collect data at scale without the risk of being blocked (e.g. rate limitations on IPs that send ‘too many’ concurrent/consecutive data requests). In this context you may also want to look into dedicated web unlocking services.  
  • Empower you to collect data from the viewpoint of a real user IP so that you are not served misleading information by potentially suspicious target sites

 Proxy integration with Selenium can be accomplished by:

  1. Going to your Bright Data Dashboard and clicking ‘create a Zone’.
  2. Choosing ‘Network type’ and then clicking ‘save’.
  3. Then heading to Selenium, and  filling in the ‘Proxy IP:Port’ in the ‘setProxy’ function for example: zproxy.lum-superproxy.io:22225 of both HTTP and HTTPS.
  4. Under ‘sendKeys’ input your Bright Data account ID and proxy Zone name:lum-customer-CUSTOMER-zone-YOURZONE and your Zone password found in the Zone settings.

  • انتی فیلتر antifilter
  •   .  
  • خرید وی پی ان
  •  .  
  • پنل نمایندگی وی پی ان نامحدود پنل vpn
  •   .  
  • خرید vpn
  •   .  
  • vpn خرید
  •   .  
  • کلودوی پی ان cloudvpn
  •   .  
  • فیلترشکن
  •   .  
  • دانلود فیلترشکن
  •   .  
  • فیلترشکن brazzers وی پی ان برای باز کردن سایت های پورن فیلتر شکن سکس
  •   .  
  • وی پی ان
  •   .  
  • وی پی ان اندروید
  •   .  
  • فیلتر شکن
  •   .  
  • وی پی ان اپل
  •   . 
  • خرید کریوخرید kerio
  •   .  
  • خرید vpn آی او اس
  •   .  
  • vpn اکانت vpn
  •  .  
  • اکانت فیلترشکن
  •   .  
  • خرید openvpn
  •   .  
  • خرید وی پی ان پرسرعت
  •   .  
  • خرید speedvpn خرید وی پی ان
  •   .  
  • وی پی ان ویندوز
  •   .  
  • خرید ویپی ان عمده
  •   .  
  • خرید فیلترشکن پروکسی
  •   .  
  • خرید vpn هوشمند وی پی ان
  •   .  
  • خرید vpn ارزان ساکس
  •   .  
  • آنتی فیلتر
  •   .  
  • فیلترشکن برای
  •  .  
  • دانلود vpn دانلود فیلتر شکن
  •   .  
  • لیچر تورنت رایگان
  •   .  
  • مستقیم کننده فایل لیچر رایگان
  •   .  
  • فروش vpn
  •   . 
  • دانلود وی پی ان خرید آنلاین vpn
  •   .  
  • خرید فیلترشکن تلگرام
  •   .  
  • خریدپروکسی فیلترشکن جدید
  •   .  
  • خرید ساکس خرید فیلترشکن
  •   .  
  • وی پی ان ارزان
  •   .  
  • تمدید وی پی ان تمدید اکانت
  •   .  
  • وی پی ان ایران vpn
  •   .  
  • vipvpn وی آی پی وی پی ان vip
  •   .  
  • vpn TEH VPN خرید فیلترشکن خرید وی پی ان اکانت کریوvip سایت tehvpn
  •   .  
  • httpوی پی ان پرسرعت
  •   .  
  • خرید وی پی ان هوشمند
  •   .  
  • اکانت وی پی ان نامحدود فیلترشکن ویندوز
  •   .  
  • خرید vpn آی پی ایران
  •   .  
  • وی پی انikev2 کرونا
  •   .  
  • مولتی وی پی ان
  •   .  
  • آموزش میلیونر شدن
  •   .  
  • بهترین فیلترشکن kerio کریو
  •   .  
  • فیلترشکن شادوساکس shadowsocks
  •   .  
  • مهاجرت اوکراین اقامت اروپا
  •   .  
  • خرید پاسپورت شباهتی
  •   .  
  • خرید iphone وی پی ان آی او اس
  •   .  
  • فیلترشکن آی پی ثابت vpn ای پی ثابت
  •   .  
  • امپراتور وی پی ان emperaturvpn empvpn سایت ویپی ان emptratur vpn
  •   .  
  • وی پی ان wireguard وایرگارد خرید ساکس
  •   .  
  • متین وی پی ان matinvpn
  •   .  
  • خرید انتی فیلتر فیلتر شکن
  •   .  
  • خرید وی پی ان برتر نت bartarnet vpn
  •   .  
  • پروکسی mtprotoتلگرام ساکس
  •   .  
  • سایت تیک نت وی پی ان خرید VPN پرسرعت اختصاصی خرید vpn برای ios خرید ساکس تلگرام خرید vpn اندروید خرید پراکسی تلگرام خرید وی پی ان tiknet vpn
  •   .  
  • خرید فیلترشکن
  •   . 
  • آنتی فیلتر AntiFilter
  •   .  
  • راهنمای vpn مجانی vpn رایگان
  •   .  
  • سایت GOVPN خرید go vpn سایت گو وی پی ان go اکانت goVPN فیلترشکن
  •   .  
  • matinvpn متین وی پی ان matin vpn
  •   .  
  • وی پی انمودم vpn برای مودم
  •   .  
  • DNS VPN خرید اکانت dns فیلترشکن پرسرعت DNS وی پی ان
  •   .  
  • کار دراینترنت درآمد آنلاین کسب سود میلیونی
  •   .  
  • اسپید وی پی ان Speedvpn خرید vpn خرید فیلترشکن خرید کریو پرسرعت
  •   .  
  • فیلترشکن تلگرام وی پی ان پرسرعت
  •   .  
  • تمدیداکانت وی پی ان تمدید vpn
  •   .  
  • WepnStore فروش انواع فیلترشکن | فروش وی پی ان موبایل و کامپیوتر vpn store
  •   .  
  • وی پی ان ilcvpn آی ال سی فروشگاه فیلترشکن
  •   .  
  • خرید vpn وی پی ان پراکسی NextVPN فیلترشکن Open فیلترشکن VPN فیلترشکن Kerio فیلترشکن Ciscovpn VPN Makers
  •   .  
  • خرید vpn خرید وی پی ان کریو خرید kerio خرید pptp خرید فیلترشکن cisco خرید ikev2
  •   .  
  • weVPN خرید vpn خرید فیلتر شکن خرید وی پی ان
  •   .  
  • وی پی ان وی آی پی vip vpn سایت vipvpn وی آی پی
  •   .  
  • وی پی ان خرید فیلتر شکن vpn اپلیکیشن vpn
  •   .  
  • خرید فیلترشکن 20speed وی پی ان 20اسپید اکانت خرید 20speed
  •  .  
  • آدرس فیلترباز اکانت وی پی ان filterbaz vpn خرید فیلترشکن باز
  •   .  
  • ویندوز فیلترشکن رایگان فیلترشکن تلگرام nextvpn
  •   .  
  • vpn خرید وی پی ان فیلترشکن پروکسی ساکس تلگرام
  •   .  
  • خرید وی پی ان خرید سیسکو خرید کریو خرید فیلترشکن tehvpn
  •   .  
  • خرید وی پی ان خرید فیلترشکن vpn
  •   .  
  • خرید وی پی ان لایک vpnlike خرید vpn like
  •   .  
  • HIVPNS وی پی ان|خرید اکانت فیلترشکن vpn|vpn ارزان|وی پی ان رایگان
  •   .  
  • hivpn خرید وی پی ان های وی پی ان خرید فیلتر شکن
  •   .  
  • زبرا وی پی ان آنلاین zebravpn خرید وی پی ان
  •   .  
  • خرید vpn خرید فیلترشکن
  •   .  
  • ابر وی پی ان abr vpn امپراتور empraturvpn emp
  •   .  
  • بهترین سایت بهترین اپلیکیشن
  •   .  
  • خرید VPN وی پی ان دوکاربره پر سرعت و ارزان Mehr VPN
  •   .  
  • من و وی پی ان خرید فیلترشکن خرید وی پی ان manovpn
  •   .  
  • سینیتیو فیلتر شکن اورجینال خرید اکانت پریمیوم خریدآنتی ویروس
  •   .  
  • TurboVPN خرید VPN پرسرعت vpn خرید vpn توربو وی پی ان
  •   .  
  • خرید وی پی ان گذرآزاد فیلترشکن پروکسی
  •   .  
  • خرید vpn خرید فیلترشکن خرید کریو دیجی وی پی ان
  •   .  
  • وی پی ان ایران ip اختصاصی آی پی ثابت وی پی ان آی پی ثابت خرید وی پی ان ارزان
  •   .  
  • چیتا وی پی ان ChitaVpn خرید vpn وی پی ان خرید فیلترشکن
  •   .  
  • خرید سیم کارت بین المللی ویزاگردی اخذ ویزا شنگن ویزا اوکراین سیم کارت خرید مستر کارت
  •   .  
  • اقامت اروپا ثبت شرکت بین المللی حساب بانکی اروپا پاسپورت آژانس مهاجرت شنگن
  •   .  
  • vpn خرید وی پی ان ترید آی پی ثابت وی پی ان ip اختصاصی
  •   .  
  • نمناک وبگردی تناسب اندام هنرمندان آشپزی اخبار
  •   .  
  • مستر وی پی ان خرید وی پی ان vpn خرید فیلترشکن آی پی اختصاصی
  •   .  
  • فیلترشکن خرید vpn ترید آی پی ثابت وی پی ان خرید پروکسی
  •   .  
  • خرید فیلترشکن خرید VPN بولد وی پی ان
  •   .  
  • خرید آی پی ایران vpn iran وی پی ان ایران vpn با آی پی ایران vpn iran
  •   .  
  • خرید وی پی ان bvpn اکانت وی پی ان
  •   .  
  • buy vpn buy proxy socks fast
  •   .  
  • дешевый аккаунт купить vpn купить прокс
  •   .  
  • 购买vpn购买代理人shadowsocks 廉价的VPN帐户
  •   .  
  • ucuz hesap vpn satın al vekil vpn satın al
  •   .  
  • حساب رخيص شراء vpn شراء بروکسی ساکس vpn
  •   .  
  • buy VPN Service cheap VPN Software Buy VPN cheap proxy
  •   .  
  • ipsabet ترید آی پی ثابت vpn آی پی ثابت ترید
  •   .  
  • سایت عبورینگ Obooring VPN خرید VPN خرید فیلترشکن
  •   .  
  • تاج وی پی ان خرید وی پی ان پرسرعت خرید فیلترشکن خرید vpn
  •   .  
  • بهار وی پی ان خرید وی پی ان ارزان vpn پرسرعت آی پی ثابت
  •   .  
  • خرید vpn با ip ثابت خرید vpn خرید فیلتر شکن
  •   .  
  • وی پی ان خرید فیلترشکن خرید ساکس
  •   .  
  • خرید vpn آی پی ثابت وی پی ان ایران نیم بها فیلتر شکن تلگرام ساکس
  •   .  
  • خرید vpn خرید فیلترشکن خرید ip ثابت و اختصاصی Hi VPN
  •   .  
  • خرید وی پی ان خرید vpn خرید آی پی ثابت فیلترشکن بایو وی پی ان
  •   .  
  • خرید وی پی ان خرید vpn خرید آی پی ثابت فیلترشکن بایو وی پی ان
  •   .  
  • vpnsaz خرید وی پی ان ساز فیلترشکن vpn saz
  •   .  
  • خرید فیلتر شکن
  •   .  
  • خرید وی پی ان
  •   .  
  • وی پی ان vpn
  •   .  
  • لایت وی پی ان با ای پی ثابت
  •   .  
  • خرید وی پی ان
  •   .  
  • خرید آی پی ثابت خرید vpn با ip ثابت خرید ip ثابت
  •   .  
  • خرید vpn بایننس خرید فیلترشکن وی پی ان ip ثابت
  •   .  
  • takvpn تک وی پی ان خرید فیلترشکن
  •   .  
  • SNAP VPN خرید اسنپ وی پی ان خرید ساکس تلگرام خرید فیلتر شکن
  •   .  
  • دانلود بازی اندوید
  •   .  
  • اکانت پریمیوم vpn
  •   .  
  • خرید vpn fitnet خرید فیلترشکن فیت نت
  •   .  
  • buy vpn
  •   .  
  • vpn ایران
  •   .  
  • خرید فیلترشکن خرید وی پی ان
  •   .  
  • خرید vpn ثابت
  •   .  
  • vpn خرید وی پی ان
  •   .  
  • وی پی ان
  •   .  
  • خرید وی پی ان
  •   .  
  • وی پی ان smart vpn فیلترشکن
  •   .  
  • فیلترشکن موبایل vpn
  •   .  
  • خرید فیلترشکن
  •   .  
  • اکانت فیلترشکن
  •   .  
  • vpn خرید vpn
  •   .  
  • وی پی ان کاورنت
  •   .  
  • وی پی ان
  •   .  
  • خرید وی پی ان
  •   .  
  • خرید VPN خرید وی پی ان
  •   .  
  • فیلترشکن توشه
  •   .  
  • خرید سرور
  •   .  
  • وی پی ان کاورنت
  •   .  
  • فیلترشکن پرسرعت amovpn
  •   .  
  • فیلترشکن
  •   .  
  • اکانت وی پی ان ipgozar
  •   .  
  • ویستا وی پی ان
  •   .  
  • خرید VPN با IP ثابت و VPS برای بایننس
  •   .  
  • buy vpn
  •   .  
  • فیلترشکن
  •   .  
  • نصب فیلترشکن
  •   .  
  • اکلیپس وی پی ان ECLIPSE VPN
  •   .  
  • خرید vpn
  •   .  
  • خرید VPN فیلترشکن
  •   .  
  • vpn خرید وی پی ان
  •   .  
  • دانلود فیلترشکن اندروید
  •   .  
  • دانلود فیلترشکن ios
  •   .  
  • سایت شرط بندی
  •   .  
  • سایت های شرط بندی
  •   .  
  • بهترین سایت شرط بندی
  •   .  
  • خرید VPN
  •   .  
  • خرید VPN کانکشن هوشمند وی پی ان
  •   .  
  • تک وی پی ان تک
  •   .  
  • دور زدن اینترنت ملی
  •   .