Data Web Scraping Industry Salaries from Glassdoor

Posted on May 24, 2018
The skills the author demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.

Inspiration

My interest in scraping glassdoor is due to the fact that I recently graduated from college. I was interested in seeing data on the industry salaries for popular cities, along with their associated ratings.

The questions I asked:

  • How much does someone make in each industry?
  • What is the average salary in each state?
  • Are salary and company rating related?

The Data Scraping Process

Using Scrapy, my plan was to look up every job posting on Glassdoor.  After viewing each posting, I would be able to retrieve information such as the job title, the company’s name, the estimated salary for the posting, rating, and industry the job was in.

Data Web Scraping Industry Salaries from Glassdoor

Images showing the relevant information that I would scrape (highlighted) from the job posting and the company description pages respectively.

The data collection seemed like it was going to be relatively straightforward, but there were a few unforeseen problems that I encountered.

Problem 1:

      Encountering JavaScript

One issue that occurred was my attempt to retrieve information about the company. Even though it was listed in the source code of the website, the code that Scrapy looks at to gather information, my program was unable to scrape it properly. When attempting to debug my code, looking for a solution, I found that even though the information on the company was in the source code, the website uses JavaScript, something that Scrapy does not recognize, to get the information from another link.

Data Web Scraping Industry Salaries from Glassdoor

The network file that Glassdoor uses to see which website to call to present company information.

After learning this, I searched through the network files that was being transmitted in hopes of finding the source of the JavaScript. I ended up finding a promising file titled “companyOverview” which contained a request URL. That URL which was the same for every posting, except for a string of numbers which was the company ID, contained all the information needed for that company.

The URL and the page containing the company’s information

The URL and the page containing the company’s information

Once I found this separate page which hosted the missing data, I was able to scrape the company information successfully.

Problem 2:

       Encountering a max search result

Another problem I encountered was a strange error where my code would break whenever it reached the 31st page of Glassdoor. As I investigated the problem, I learned that Glassdoor only provides the first 30 pages for its viewers. Even though it states “30 out of 5277 pages”, there is no 31st page (or any page past it)

Data Web Scraping Industry Salaries from Glassdoor

Despite Glassdoor stating that had 5277 pages of listings…

 

...I would get an error on any page past 30.

The Scraping Process: The Solution

In order to gather enough data, I decided to look up 16 different cities across the US and find all the job postings located in those areas. I also discovered a way for my spider to go to the next website programmatically, by decoding what each part of the URL meant.

The code above gives us a specific URL to each city. This was a solution to compacting the Problem 2

After overcoming these two obstacles, I was able to scrape all the necessary information from Glassdoor.

The Visualization Data Analysis

After scraping for and pre-processing my data, I was finally able to visualize the questions I first asked, with a further investigation into the results.

Industry

In this chart, I summed the number of job postings in each industry. Looking at the top 3 job posted industries, we have Business Services, Information Technology, and Finance. If we had more data, it would be interesting to look at how each industry evolved over the years. For example, it would be interesting to look into information technology and see when its inception to mainstream culture occurred.

In this graph, I averaged all the industry salaries, along with the estimated salary low and estimated salary high, to provide myself with the highest paying industry. The top five highest mean salary, from highest to lowest, is Information Technology, Finance, Manufacturing, Construction Repair, and Business Services. Again we see Information Technology and Business Services in the top portion of our industry salary.

In this graph, I was interested in seeing which industry had the most touted rating. It's interesting to see Construction Repair and Real Estate as the first and third highest rated industry. To dig into the data we've just visualized, I found out there's a reason as to why those industries are so highly rated.

According to FastCompany, TINYpulse surveys revealed the top three issues standing in the way of happy employees were:

  1. Managers who aren’t supportive
  2. Not having the tools to succeed
  3. No opportunity for professional growth

In the construction industry, a variety of organizations offer coaching and career mentorship to students. Once they’re ready for the workforce, the industry has a long history of providing new workers with apprenticeships so they can learn the skills required to move on to tackle more challenging work.

State

After looking at some metrics involving industry, I was interested in looking at some states. To begin my search, I counted all the number of job postings each popular state offered.

California, Texas, and New York have the largest amount of jobs posted on Glassdoor.

Aggregating each states average salary, we see that California, New York, and Illinois have the highest averages.

We see that Massachusetts has the highest mean rating, followed by Califonia.

City

Now that we've gathered information on industries, I was interested in diving into the salaries, job postings, and ratings per city. The graph below represents cities that are popular amongst the younger workforce.

 

As you can see, New York, Chicago, Los Angeles, Houston, San Fran... have a large number of job postings. Now to dive a little further, I took a look at the average salary.

We see here that San Fran, San Jose, New York, and Austin have a high average salary. It's assumed that San Fran, New York, and San Jose would have a higher average salary, as we saw, Business Services and Information Technology are the two highest paying industries. For those cities listed before, they promote those specific jobs, which will indicate the high salary pay. For the city of Austin, I dug a little deeper as to whether there's a problem with my dataset. As it turns out, Austin is a growing digital city, which means there are many job postings for information technology jobs.

 

 

Coming to a conclusion, I was interested to see if their is a linear regression with rating and salary. We see here that there is no relation between salary and rating.

About Author

Emanuel Kamali

In addition to machine learning, he loves the AHA! moments, storytelling, and the creative aspects of data science
View all posts by Emanuel Kamali >

Leave a Comment

No comments found.

View Posts by Categories


Our Recent Popular Posts


View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI