How to Scrape Craigslist Data with Attributes in Every Listing?

How to Scrape Craigslist Data with Attributes in Every Listing?

Jan 18, 2022, 4:15:47 AM Business

Web scraping could be very useful when analyzing data. The key problem that is frequently encountered is while you require data from an item-specific site. With that, you require to get every items’ distinctive link to scrape craigslist data for the item. In this blog, we will explain to you how to scrape craigslist data for every unique item.

Initially, let’s import a few standard libraries:

code


Then, let’s get a link to the initial page of what we want to search. For our objectives, let’s utilize the keyword, ‘motorcycles in New York City’.

code


Using the given link, let’s print the HTML content from this page.

code


After that, print that out. This is a huge amount of code, which is not very useful however, we would utilize BeautifulSoup, as given above to assist us in parsing the HTML.

code


After that, just right-click on the list and click on inspect as it will open its HTML code:

code

code


Now, we can observe here that using a class ‘row’ would be extremely important. Let’s extract all these rows.

code


Now, what we require is getting the motorcycle components. We can perform it using these codes:

code


It looks extremely solid. There are many items, which we would need particularly like a title, pricing, and every exclusive item's URL so that we could use that later to have any particular data.

To have the pricing data, we need to utilize the ‘span’ having a class name as well as the result prices.

code


We would utilize the code for the loop having the text as well as strip attributes.

code


This looks like we can do it very well. The next component we should have is a URL. This is a bit more complicated however, shouldn’t be extremely hard. Using the inspect element, we can observe that it is having a ‘href’ tag.

code


We can utilize this for building our code as well as getting every unique link.

code


In the end, let’s find the title. We would do it the same way through using inspect for getting the class as well as tags and use it to create the code. Our code will appear like this:

code


To find data from different pages, you need to create the pagination however, let’s find the attributes regarding every particular bike using the link. Therefore, let’s select a listing.

code


Here is the list of attributes:

code


Let’s use a link for any particular motorcycle as well as use that for the URL to extract Craigslist data from.

code


Now, we have inspected a page to get what is very interesting for us.

code


Here, we can observe that an ‘attrgroup’ is very interesting and perhaps helpful as well as also all the ‘span’s. Therefore, let’s find all ‘attrgroups’

code


As there will be different attributes in every listing, we could utilize the loop to have all attributes. With attributes, you can have different “spans”, therefore, we require to get all “spans” as well as also have text taken from them.

code


Also, we can find the description as well as it looks easier as it’s just the ‘section id’ using ‘postingbody’:

code


While looking for the class you utilize a ‘class_=’ method however when searching for the section, you just utilize the dictionary as well as pass the ‘id’ (or other parameters it could have instead).

code


And that’s it! In case, you would need to get that for all listings you will require to put a complete code for function and loop.

For more information about Craigslist web scraping, contact 3i Data Scraping or ask for a free quote!

Published by 3i Data Scraping

Reply heres...

Login / Sign up for adding comments.