Streamline your Craigslist queries with an API that traverses url endpoints. This library serves as an addition to pycraigslist and python-craigslist.
pip install python-craigslist-meta
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', ... ]
children
attribute.from craigslist_meta import Country
india = Country("india")
# print site keys in India
print(india.children)
# ['ahmedabad', 'bangalore', 'bhubaneswar', ... ]
If you are having issues or would like to propose a new feature, please use the issues tracker.
This project is licensed under the MIT license.