A very simple Python package that scrapes the Vinted site to retrieve information about its items.
You can install Vinted Scraper using pip:
pip install vinted_scraper==2.4.0
If you are on Python 3.6 you also have to install
dataclasses
:pip install dataclasses
We move from requests
to httpx
to support Async API call. Now, you can await AsyncVintedScraper
or AsyncVintedWrapper
.
I haven't finish to update all the docs but you can check async quick starts to understand how they work.
To install the alpha version with pip:
pip install vinted_scraper==3.0.0a1
Compatible from python 3.8+
For more info about Alpha check the roadmap, and please if you find a bug open a issue!
The package offers the following functions:
search
- (gets all the items present on the listing page)
Parameters
name type data type description params optional Dict Query parameters like the pagination and so on
item
- (gets the information about an item, and its seller present on the item detail page)
Parameters
name type data type description id required str The unique identifier of the item to retrieve params optional Dict I don't know is they exist
To obtain the scraped data as a vinted_scraper.models.VintedItem
, so you can:
import vinted_scraper.VintedScraper
def main():
scraper = VintedScraper("https://www.vinted.com") # init the scraper with the baseurl
params = {
"search_text": "board games"
# Add other query parameters like the pagination and so on
}
items = scraper.search(params) # get all the items
item = items[0] # get the first Item of the list
scraper.item(item.id) # get more info about a particular item
if __name__ == "__main__":
main()
VintedScraper
returns structured data that are parsed and converted into a vinted_scraper.models.VintedItem
object.
If some attributes are None
means that it wasn't found in the response, maybe because they are returned from other
API.
Also, I discard some attribute that I thought was useless but feel free to open an issue or a PR to add them.
If you want to manage the JSON response directly, you should use the VintedWrapper
object instead of VintedScraper
.
Here's the way of how to use it:
import vinted_scraper.VintedWrapper
def main():
wrapper = VintedWrapper("https://www.vinted.com") # init the scraper with the baseurl
params = {
"search_text": "board games"
# Add other query parameters like the pagination and so on
}
items = wrapper.search(params) # get all the items
item = items["items"][0] # get the first Item of the list
wrapper.item(item["id"]) # get more info about a particular item
if __name__ == "__main__":
main()
This project is licensed under the MIT License - see the LICENSE file for details.