Craigslist JSON-LD lacks ID fields, forcing title-based joins with 89% success rate
Developers building a Craigslist multi-city listings scraper discovered that the site's JSON-LD blocks contain no shared identifiers such as product IDs, URLs, or SKUs to match against static HTML listings. The only common field available for joining the two data sources is the listing title, despite titles not being unique across posts. Using a per-title FIFO queue approach, engineers were able to successfully match 290 of 325 listings — an 89% recovery rate — on a captured 298-item search page. Listings that could not be fully matched still returned partial data including title, price, and location, with fields like coordinates, currency, and images left null rather than dropping the row entirely. Separately, Craigslist was found to have migrated from numeric post IDs to alphanumeric strings in a new URL scheme, meaning any scraper relying on legacy numeric-only regex patterns will silently fail on current pages.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in