DEV Community

Devil Scrapes profile picture

Devil Scrapes

View all public scrapers @ https://apify.com/devilscrapes

Joined Joined on 
The Location header is relative more often than your link checker thinks

The Location header is relative more often than your link checker thinks

Comments
4 min read
Cloudflare's /security.txt 404s with Content-Type: text/plain

Cloudflare's /security.txt 404s with Content-Type: text/plain

Comments
4 min read
A domain that doesn't exist returns HTTP 200 OK

A domain that doesn't exist returns HTTP 200 OK

Comments
4 min read
Wikimedia blocks python-requests and waves through an empty User-Agent

Wikimedia blocks python-requests and waves through an empty User-Agent

Comments
4 min read
Docker Hub's API 403s Chrome and 200s Firefox — same URL, same second

Docker Hub's API 403s Chrome and 200s Firefox — same URL, same second

Comments
4 min read
OData's worst failure isn't the 400 — it's the query that quietly matches nothing

OData's worst failure isn't the 400 — it's the query that quietly matches nothing

Comments
3 min read
The FDIC's API returns data.data, and ASSET is in thousands

The FDIC's API returns data.data, and ASSET is in thousands

Comments
4 min read
Our container reported SUCCEEDED, ran nothing, and scored 100% on every dashboard

Our container reported SUCCEEDED, ran nothing, and scored 100% on every dashboard

Comments
4 min read
UN Comtrade's free tier: 500 rows, no pagination, and a silent 429

UN Comtrade's free tier: 500 rows, no pagination, and a silent 429

Comments
4 min read
EDGAR's total count lies to you, and it says so

EDGAR's total count lies to you, and it says so

Comments
3 min read
Most EDGAR tools stop at the filing. The trades are one layer deeper.

Most EDGAR tools stop at the filing. The trades are one layer deeper.

Comments
3 min read
NHTSA decodes any 17 characters you give it, valid or not

NHTSA decodes any 17 characters you give it, valid or not

Comments
3 min read
ORCID's search API has a ceiling it never tells you about

ORCID's search API has a ceiling it never tells you about

Comments
4 min read
The NWS API makes you resolve a grid before it tells you the weather

The NWS API makes you resolve a grid before it tells you the weather

Comments
4 min read
Our Chrome fingerprint was the thing getting us blocked

Our Chrome fingerprint was the thing getting us blocked

Comments
3 min read
Four levels of JSON to say the word Leasehold

Four levels of JSON to say the word Leasehold

Comments
4 min read
Your demo input has an expiry date (and your tests can't see it)

Your demo input has an expiry date (and your tests can't see it)

Comments
4 min read
openFDA's docs say +AND+. Send that and you get a 500.

openFDA's docs say +AND+. Send that and you get a 500.

Comments
4 min read
Our browser impersonation made the API return HTML (and 29 tests missed it)

Our browser impersonation made the API return HTML (and 29 tests missed it)

Comments
3 min read
Don't scrape data.gov. Speak CKAN.

Don't scrape data.gov. Speak CKAN.

Comments
4 min read
The offset parameter that silently does nothing (and would have billed for it)

The offset parameter that silently does nothing (and would have billed for it)

Comments
4 min read
rdap.org answers 302, and a client that doesn't follow it sees nothing

rdap.org answers 302, and a client that doesn't follow it sees nothing

Comments
4 min read
255 App Store scrapers and not one of them tracks keyword rank

255 App Store scrapers and not one of them tracks keyword rank

Comments
4 min read
A SUCCEEDED run with zero log lines: the probe that never executed

A SUCCEEDED run with zero log lines: the probe that never executed

Comments
4 min read
One retry budget, two unrelated failures: how a scraper blamed the wrong wall

One retry budget, two unrelated failures: how a scraper blamed the wrong wall

Comments
4 min read
Two green runs an hour apart is not reliability if the scraper is 33% reliable

Two green runs an hour apart is not reliability if the scraper is 33% reliable

Comments
4 min read
Same API standard, 57 rivals, nobody consolidated: harvesting every Socrata portal at once

Same API standard, 57 rivals, nobody consolidated: harvesting every Socrata portal at once

Comments
4 min read
The 404 Was Our URL, Not Idealista's Wall

The 404 Was Our URL, Not Idealista's Wall

Comments
4 min read
We debugged the same bug for 3 days because it was never actually deployed

We debugged the same bug for 3 days because it was never actually deployed

Comments
7 min read
A SUCCEEDED run with 3 rows, and every row was fabricated

A SUCCEEDED run with 3 rows, and every row was fabricated

Comments
6 min read
Open Brewery DB Has Two Ways to Say 'Zero Results'

Open Brewery DB Has Two Ways to Say 'Zero Results'

Comments
4 min read
UK Police's Crime API Returns 404 When the Answer Is Zero

UK Police's Crime API Returns 404 When the Answer Is Zero

Comments
4 min read
The proxy wall that was a leftover environment variable

The proxy wall that was a leftover environment variable

Comments
4 min read
USAspending.gov Returns a Fake 500 to Block Scrapers — Here's the Fix

USAspending.gov Returns a Fake 500 to Block Scrapers — Here's the Fix

Comments
3 min read
openFDA Tells You the Outcome Was 5

openFDA Tells You the Outcome Was 5

Comments
3 min read
Our Scraper Said Every EU Tender Was Titled "F"

Our Scraper Said Every EU Tender Was Titled "F"

Comments
3 min read
An API With No Pagination Is a Billing Problem

An API With No Pagination Is a Billing Problem

Comments
3 min read
The French Registry Says 10,000 Results. It Means the Cap.

The French Registry Says 10,000 Results. It Means the Cap.

Comments
3 min read
One Medicare API, Four Datasets, Three Renamed Fields

One Medicare API, Four Datasets, Three Renamed Fields

Comments
4 min read
EPA ECHO Reports a Rejected Search as HTTP 200

EPA ECHO Reports a Rejected Search as HTTP 200

Comments
4 min read
UK Contracts Finder: how to scrape public-sector tenders without losing rows to bad GUID parsing

UK Contracts Finder: how to scrape public-sector tenders without losing rows to bad GUID parsing

Comments
3 min read
Only OSM Nodes Carry Coordinates — Ways and Relations Need out center

Only OSM Nodes Carry Coordinates — Ways and Relations Need out center

Comments
3 min read
NIH RePORTER Caps You at Offset 14,999 No Matter What Matches

NIH RePORTER Caps You at Offset 14,999 No Matter What Matches

Comments
3 min read
Finland's Company API Accepts Your Filter and Silently Ignores It

Finland's Company API Accepts Your Filter and Silently Ignores It

Comments
3 min read
NVD gives you 5 requests per 30 seconds, and CVSS in four schemas

NVD gives you 5 requests per 30 seconds, and CVSS in four schemas

Comments
2 min read
The Rebag URL everyone scrapes is the one robots.txt disallows

The Rebag URL everyone scrapes is the one robots.txt disallows

Comments
3 min read
Hipcamp Scraper: Three Listing Types That Never Share a Schema

Hipcamp Scraper: Three Listing Types That Never Share a Schema

Comments
4 min read
Fashionphile Scraper: Its Own Search Page Hides Real Prices Behind a Null Block

Fashionphile Scraper: Its Own Search Page Hides Real Prices Behind a Null Block

Comments
4 min read
Our build wave shipped four scrapers that scraped nothing

Our build wave shipped four scrapers that scraped nothing

Comments 1
4 min read
The Zenodo API Caps You At 25 Results — Above That It's Just 400

The Zenodo API Caps You At 25 Results — Above That It's Just 400

Comments
3 min read
Mercari Sold Listings: When 200 OK And 403 Both Lie To You

Mercari Sold Listings: When 200 OK And 403 Both Lie To You

Comments
4 min read
Goodreads Has No Book API — So Its Site Is One Big GraphQL Cache

Goodreads Has No Book API — So Its Site Is One Big GraphQL Cache

Comments
4 min read
Gumroad has no public API, but every page inlines its own JSON

Gumroad has no public API, but every page inlines its own JSON

Comments
4 min read
4 states, 1 open-data API, and the pagination bug that splits a company in half

4 states, 1 open-data API, and the pagination bug that splits a company in half

Comments
4 min read
Scraping Lu.ma: one JSON blob answers list pages, event pages, and address privacy

Scraping Lu.ma: one JSON blob answers list pages, event pages, and address privacy

Comments
3 min read
YouTube's innertube player API: 200 OK doesn't mean you got the data

YouTube's innertube player API: 200 OK doesn't mean you got the data

Comments
4 min read
5 states, 2 working filters: scraping US childcare license registries

5 states, 2 working filters: scraping US childcare license registries

Comments
4 min read
Suumo.jp: one site, two completely different schemas for rent vs. buy listings

Suumo.jp: one site, two completely different schemas for rent vs. buy listings

Comments
4 min read
Same API standard, four incompatible schemas: scraping state cosmetology license registries

Same API standard, four incompatible schemas: scraping state cosmetology license registries

Comments
4 min read
Google Trends API: the 200 OK that means you got soft-blocked

Google Trends API: the 200 OK that means you got soft-blocked

Comments
4 min read
loading...