Data Scraping Used Car Inventory

Posted on Feb 17, 2019
The skills the author demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
Data Scraping Used Car Inventory


The rise of e-commerce has left in its trails an abundance of data that, if collected and harnessed properly, can provide meaningful insight to business analysts, economists, and any student of trade.  For my web-scraping project at The Academy, I decided to collect data from a popular and rapidly growing online retailer of used cars. 

Fields that I scraped from this retailer’s website included VIN numbers, stock keeping units (SKU), vehicle price, mileage, make/model, year, efficiency (as measured by both city miles/gallon and highway miles/gallon), engine type, fuel type, transmission type, horsepower, interior color and exterior color, number of passengers, powertrain and base warranty… in short, I was able to re-construct the company’s inventory with a high degree of precision and detail.

Data Scraping

The scrape I developed could have many useful applications.  A financial analyst might run it periodically to ascertain metrics of interest such as rate of sale, days in inventory, average selling price, markdown cadence, and the quality/skew of new vehicles that are acquired into inventory.  Competitors might use it to understand the types of vehicles and pricing levels in the market; they may also be able to join the scrape data with other publicly available data sets to understand vehicle ownership patterns, accident incidence, lease records, etc.  With access to data as complete as this, and with a truly unique identifier to each observation (i.e. VIN), the possibilities for analysis are nearly endless.

Scraping this site was not, however, without its challenges.  First, I developed a Scrapy shell to generate a list of URL’s representing links to each of the company’s vehicles inventoried for sale.  Once inside those individual pages, though, I encountered numerous scripts (Java, Ajax, etc.) that made parsing the data extremely difficult. I then wrote a second script in Selenium to scrape each individual car’s page and extract the details for tabulation. This process took much tweaking, but achieved the desired result.  After scraping several hundred sites, the site identified my crawl; requiring me to anonymize my proxies to proceed.  In short, the stumbling blocks I encountered proved to be an incredible learning experience for me.


Some interesting observations and take-aways from the data follow below.

First, a quick EDA; the retailer I scraped focuses on cars 5 years or younger;  mileage tending in the 35k range, and at a pricing sweet-spot of about $16k:

Data Scraping Used Car InventoryMileage, Age, and Pricing Statistics

The inventory of this retailer skewed heavily towards Nissan brand cars.  This made sense to me; according to news sources, Nissan has been one of the most aggressive manufacturers in the US; spending heavily on incentives over the years in an attempt to gain share of market.  In fact, according to a Financial Times article dated January 31, 2019, Nissan's operating margin of 3.6% is the lowest of any large manufacturer. http://(

Data Scraping Used Car Inventory

Correlations Heatmap

Of interest to me were which variables most affected price.  I ran a correlation matrix to observe relationships with various data features; the heatmap below indicates that vehicle price tended to be positively correlated with its horsepower; and negatively correlated with efficiency (Highway and City Miles per Gallon).

This could be visualized further through a scatterplot and regression analysis of vehicle horsepower & price.  Additionally, the engine type of a vehicle and its tire size, in that they are both partially related to horsepower, seem to reflect a similar relationship to price.

Data Scraping Used Car Inventory

Though intuitive, I found the relationships curious and worthy of further exploration.  Are consumers really willing to pay more for a vehicle that is less fuel efficient?  Is the absolute power of a vehicle still the key driver of its value?  The answer, in my opinion, is yes; but the relationship is in fact changing.

Efficiency and Price

A more detailed study of the relationship between efficiency and price in this inventory sample indicates that while a negative correlation continues to exist for traditionally fueled vehicles (i.e. gas and diesel),  newer hybrid and lithium electric models are re-defining this relationship.  Notably, electric cars exhibit a positive correlation between their price and efficiency:

Scatterplot with linear regression: Highway MPG & Price

Currently, there are not many vehicles in this retailer's inventory that use alternative energy; and the majority of those that do, appear to be trucks.  But as these are relatively new technologies, I would expect more and more of these cars to enter the mix, and as I run this scrape in future periods, I would expect correlations to shift.

A final point of interest to me has to do with the observed relationship between exterior price and color.  Though the most common color in inventory happened to be black, the highest average prices were for cars labeled "graphite", which is a dark shade of gray.  But this is where nomenclature can be very important -- labeling the same graphite car as either "charcoal" or simply "grey" would seem to result in a much lower price!

About Author

Marc Hasson

As an investment research professional, much of my work over the last 17 has centered around developing a deep understanding of businesses based on senior management interactions, financial modeling, forecasting, and primary due diligence. Data has also been...
View all posts by Marc Hasson >

Related Articles

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