Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App

Related Articles

Extract Data From JustDial using Selenium

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Let us see how to extract data from Justdial using Selenium and Python. Justdial is a company that provides local search for different services in India over the phone, website and mobile apps. In this article we will be extracting the following data:

  • Phone number
  • Name
  • Address

We can then save the data in a CSV file.


  1. Import the following modules: webdriver from selenium, ChromeDriverManager, pandas, time and os.
  2. Use the driver.get() method and pass the link you want to get information from.
  3. Use the driver.find_elements_by_class_name() method and pass ‘store-details’.
  4. Instantiate empty lists to store the values.
  5. Iterate the StoreDetails and start fetching the individual details that are required.
  6. Create a user-defined function strings_to_number() to convert the extracted string to numbers.
  7. Display the details and save them as a CSV file according to the requirements.


# importing the modules
from selenium import webdriver
from import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
import pandas as pd
import time
import os
# driver.get method() will navigate to a page given by the URL address
# the user-defined function
def strings_to_num(argument):
    switcher = {
        'dc': '+',
        'fe': '(',
        'hg': ')',
        'ba': '-',
        'acb': '0',
        'yz': '1',
        'wx': '2',
        'vu': '3',
        'ts': '4',
        'rq': '5',
        'po': '6',
        'nm': '7',
        'lk': '8',
        'ji': '9'
    return switcher.get(argument, "nothing")
# fetching all the store details
storeDetails = driver.find_elements_by_class_name('store-details')
# instantiating empty lists
nameList = []
addressList = []
numbersList = []
# iterating the storeDetails
for i in range(len(storeDetails)):
    # fetching the name, address and contact for each entry
    name = storeDetails[i].find_element_by_class_name('lng_cont_name').text
    address = storeDetails[i].find_element_by_class_name('cont_sw_addr').text
    contactList = storeDetails[i].find_elements_by_class_name('mobilesv')
    myList = []
    for j in range(len(contactList)):
        myString = contactList[j].get_attribute('class').split("-")[1]
# initialize data of lists.
data = {'Company Name': nameList,
        'Address': addressList,
        'Phone': numbersList}
# Create DataFrame
df = pd.DataFrame(data)
# Save Data as .csv
df.to_csv('demo1.csv', mode = 'a', header = False)






My Personal Notes arrow_drop_up
Last Updated : 24 Oct, 2021
Like Article
Save Article
Similar Reads
Related Tutorials