Skip to main content

A simple API to traverse Craigslist endpoints

Project description

PyPI version fury.io PyPI pyversions

Streamline your Craigslist queries with an API that traverses url endpoints. This library serves as an addition to pycraigslist and python-craigslist.

Installation

pip install python-craigslist-meta

Examples

Let’s find every car and truck for sale around the world. pycraigslist is required for this example.

import pycraigslist
from craigslist_meta import Site

for site in Site.all():
    if site.has_area():
        for area in site:
            all_autos = pycraigslist.forsale.cta(site=site.key, area=area.key)
            for auto in all_autos.search():
                print(auto)
    else:
        all_autos = pycraigslist.forsale.cta(site=site.key)
        for auto in all_autos.search():
            print(auto)

We could run the same search using python-craigslist.

from craigslist import CraigslistForSale
from craigslist_meta import Site

for site in Site.all():
    if site.has_area():
        for area in site:
            all_autos = CraigslistForSale(site=site.key, area=area.key, category='cta')
            for auto in all_autos.get_results():
                print(auto)
    else:
        all_autos = CraigslistForSale(site=site.key, category='cta')
        for auto in all_autos.get_results():
                print(auto)

Let’s get Craigslist urls of areas in the San Francisco Bay Area.

from craigslist_meta import Site

sfbay = Site("sfbay")
for area in sfbay:
    print(area.url)


# https://sfbay.craigslist.org/eby/
# https://sfbay.craigslist.org/nby/
# https://sfbay.craigslist.org/pen/
# https://sfbay.craigslist.org/sby/
# ...

We can also work with countries. Let’s get site keys in Germany.

from craigslist_meta import Country

germany = Country("germany")
for site in germany:
    print(site.key)


# berlin
# bremen
# cologne
# dresden
# ...

Let’s get titles of sites in Japan.

from craigslist_meta import Country

japan = Country("japan")
for site in japan:
    print(site.title)


# 福岡
# 広島
# 名古屋
# 沖縄
# ...

Finally, we can go a step further and work with regions.

from craigslist_meta import Region

africa = Region("africa")
for country in africa:
    print(country.title)


# Egypt
# Ethiopia
# Ghana
# Kenya
# ...

Get a list of valid keys for Region, Country, and Site by using the keys class attribute.

from craigslist_meta import Site

print(Site.keys)


# ['abbotsford', 'aberdeen', 'abilene', ... ]
Similarly, get a list of children keys for Region, Country, and Site instances by using the children attribute.
The children heirarchy is as follows: Region –> Country –> Site –> Area
from craigslist_meta import Country

india = Country("india")
# print site keys in India
print(india.children)


# ['ahmedabad', 'bangalore', 'bhubaneswar', ... ]

Contribute

Support

If you are having issues or would like to propose a new feature, please use the issues tracker.

License

The project is licensed under the MIT license.

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

python-craigslist-meta-0.5.1.tar.gz (23.1 kB view hashes)

Uploaded Source

Supported by

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