Skip to main content

A package for second hand shopping

Project description

Postal Service Python Library

PyPI version

Python library for scraping second hand Japanese websites for easier access to the search results. Useful for creating datasets, notification systems, or web APIs. Targets the website API if available, or parses the HTML response.

Features

  • Mercari, Fril scraping
  • Filter by keyword and size
  • Built in asynchronous requests for fast html scraping
  • Unit tested locally and with Github Actions workflow

Installation

postalservice is available on PyPI as postalservice

pip install postalservice

One shot example

from postalservice import MercariService

mercari = MercariService()

# The `get_search_results` method returns a `SearchResults` object
searchresults = mercari.get_search_results({'keyword':'comme des garcons', 'size':'XL'})

# When you print the `SearchResults` object, it outputs a well-formatted JSON string
print(searchresults)

Output:

[
    {
        "id": "m65906652855",
        "title": "ルイスレザー ジュンヤワタナベ JUNYA WATANABE MAN ライダース",
        "price": 120000.0,
        "size": "L",
        "url": "https://jp.mercari.com/item/m65906652855",
        "img": [
            "https://static.mercdn.net/c!/w=240,f=webp/thumb/photos/m65906652855_1.jpg?1705291813"
        ]
    },
    # ... more items
]

Main methods of all service classes

BaseService is an abstract base class that defines the interface for a service. All services implement this and therefore have all these class methods:

  • get_search_results(params: dict) -> SearchResults: Fetches data synchronously using the provided parameters, parses the response, and returns the results as SearchResults object.

  • get_search_results_async(params: dict) -> SearchResults: Fetches data asynchronously using the provided parameters, parses the response (asynchronously, if needed), and returns the results as SearchResults object.

todo

  • Rakuten support
  • General improvements to structure of the library
  • Support for multiple sizes for sites where only one size is possible to select at a time

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

postalservice-0.2.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

postalservice-0.2.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file postalservice-0.2.0.tar.gz.

File metadata

  • Download URL: postalservice-0.2.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for postalservice-0.2.0.tar.gz
Algorithm Hash digest
SHA256 532103a3313f6093801f2fc479d00193fd555fa78f0752a14644b078ee54bd3a
MD5 9336e46f7f850f3eb8a15977e051bad4
BLAKE2b-256 a63c1fa97c27b4c76697749cd0adfadd2cf475851354eafb665f5c4d3df4b076

See more details on using hashes here.

File details

Details for the file postalservice-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: postalservice-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for postalservice-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d8cb4763f862cfbb65183caabd63f84348b50bf7bb53fcd0d2fbd01c19dbf187
MD5 1a86eeb9bab3402bd70e054d902f7950
BLAKE2b-256 2dead062667484eedd45e6ff0e94fb054df7c89252f920a53a737044a4a40077

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page