DEV Community

Devil Scrapes profile picture

Devil Scrapes

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

Joined Joined on 
Our QA harness certified this Actor at 4096 MB. It ships on 512.

Our QA harness certified this Actor at 4096 MB. It ships on 512.

Comments
3 min read
A run delivered 0 rows and still got billed $0.30 — the bug was ours, not Bayut's

A run delivered 0 rows and still got billed $0.30 — the bug was ours, not Bayut's

Comments
3 min read
The TikTok 'block' that was actually Camoufox running out of memory

The TikTok 'block' that was actually Camoufox running out of memory

Comments
3 min read
A datacenter IP gets 0 listings; a residential one gets 12. Same build.

A datacenter IP gets 0 listings; a residential one gets 12. Same build.

Comments
3 min read
Our scraper went 0-for-19 against Cloudflare. One boolean took it to 9-for-10.

Our scraper went 0-for-19 against Cloudflare. One boolean took it to 9-for-10.

Comments
5 min read
We cleared PeoplePerHour 4/4 locally. The first cloud run got HTTP 202 from every URL.

We cleared PeoplePerHour 4/4 locally. The first cloud run got HTTP 202 from every URL.

Comments
4 min read
A Dockerfile typo turned 33 real Depop rows into a silent, SUCCEEDED zero

A Dockerfile typo turned 33 real Depop rows into a silent, SUCCEEDED zero

Comments
4 min read
An isinstance(str) check that was always False capped every Facebook Page at exactly 3 posts

An isinstance(str) check that was always False capped every Facebook Page at exactly 3 posts

Comments
4 min read
Alibaba renamed one JavaScript variable and our price field silently dropped to 0%

Alibaba renamed one JavaScript variable and our price field silently dropped to 0%

Comments
5 min read
A 586 KB HTTP 200 from YouTube that contains zero videos

A 586 KB HTTP 200 from YouTube that contains zero videos

Comments
4 min read
Our test asked for 4 branches, ran 1, and reported PASS

Our test asked for 4 branches, ran 1, and reported PASS

Comments
4 min read
LinkedIn has an /api/ endpoint that needs no login and returns HTML

LinkedIn has an /api/ endpoint that needs no login and returns HTML

Comments
3 min read
Our release gate read a docstring and blocked the deploy over a word

Our release gate read a docstring and blocked the deploy over a word

Comments
4 min read
No introspection, no allowlist: reconstructing Whatnot's GraphQL queries from a compiled AST

No introspection, no allowlist: reconstructing Whatnot's GraphQL queries from a compiled AST

Comments
4 min read
Zero results, five rows: the Flippa search response that lies about matching nothing

Zero results, five rows: the Flippa search response that lies about matching nothing

Comments
4 min read
A 200 that isn't reachability: SpareRoom's soft-redirect and the empty run nobody notices

A 200 that isn't reachability: SpareRoom's soft-redirect and the empty run nobody notices

Comments
5 min read
A 404 is not a failure: what Discord's invite endpoint taught us about billing

A 404 is not a failure: what Discord's invite endpoint taught us about billing

5
Comments
5 min read
A 25%-failing test is not flaky. It's a bug reporting itself honestly.

A 25%-failing test is not flaky. It's a bug reporting itself honestly.

5
Comments
4 min read
A bare useApifyProxy: true resolves to datacenter. Patreon 403s every one of those.

A bare useApifyProxy: true resolves to datacenter. Patreon 403s every one of those.

Comments
4 min read
grep '"aggregate_rating":' finds zero matches on Zomato. The field is there, just double-escaped.

grep '"aggregate_rating":' finds zero matches on Zomato. The field is there, just double-escaped.

Comments
4 min read
?q=chairs on Chairish isn't a search - it's a redirect to a category page wearing a search URL.

?q=chairs on Chairish isn't a search - it's a redirect to a category page wearing a search URL.

Comments
5 min read
?q=chairs on Chairish isn't a search - it's a redirect to a category page wearing a search URL.

?q=chairs on Chairish isn't a search - it's a redirect to a category page wearing a search URL.

Comments
5 min read
?page=2 on Immowelt returns page 1, byte for byte. It's a button, not a route.

?page=2 on Immowelt returns page 1, byte for byte. It's a button, not a route.

Comments
5 min read
window.__NUXT__ is not JSON. It's a function you have to run first.

window.__NUXT__ is not JSON. It's a function you have to run first.

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

Our build wave shipped four scrapers that scraped nothing

Comments
4 min read
A one-step probe told us YouTube was blocked. It was asking the wrong endpoint.

A one-step probe told us YouTube was blocked. It was asking the wrong endpoint.

Comments
4 min read
The top-earning product on Indie Hackers reports $10,000,000,000,000,000 a month

The top-earning product on Indie Hackers reports $10,000,000,000,000,000 a month

Comments
3 min read
Grailed's __NEXT_DATA__ is empty. The listings come from Algolia, and the key is on the page.

Grailed's __NEXT_DATA__ is empty. The listings come from Algolia, and the key is on the page.

Comments
3 min read
Coursera ships two big JSON blobs on every search page. Neither has the results.

Coursera ships two big JSON blobs on every search page. Neither has the results.

Comments
4 min read
dict.get(key, [None])[0] is not safe, and our green test suite agreed with us

dict.get(key, [None])[0] is not safe, and our green test suite agreed with us

Comments
4 min read
Pinterest's ad library endpoint was hiding behind one missing curl flag

Pinterest's ad library endpoint was hiding behind one missing curl flag

Comments
4 min read
Google News RSS has no cursor, so the query IS the cursor

Google News RSS has no cursor, so the query IS the cursor

Comments
4 min read
Trustpilot needs a browser exactly once — the WAF token replays onto curl

Trustpilot needs a browser exactly once — the WAF token replays onto curl

Comments
4 min read
Meta's Ad Library 403 is 481 bytes of instructions, not a block

Meta's Ad Library 403 is 481 bytes of instructions, not a block

Comments
4 min read
Indeed 403s Chrome on every proxy tier — and our laptop said it was fine

Indeed 403s Chrome on every proxy tier — and our laptop said it was fine

Comments
4 min read
LinkedIn Ad Library Caps at 24 Ads — Here's the Real Pagination Endpoint

LinkedIn Ad Library Caps at 24 Ads — Here's the Real Pagination Endpoint

Comments
7 min read
Fiverr Gig Scraper: One Listing, Two Rows, Only One Says Sponsored

Fiverr Gig Scraper: One Listing, Two Rows, Only One Says Sponsored

Comments
5 min read
Why 43% of Yahoo Finance's 1-Minute Candles Come Back Null

Why 43% of Yahoo Finance's 1-Minute Candles Come Back Null

Comments
5 min read
CoinMarketCap's lastUpdated Lies About Your EUR Price

CoinMarketCap's lastUpdated Lies About Your EUR Price

Comments
5 min read
Binance's api.binance.com Blocks Every US IP — Its Own Data Mirror Doesn't

Binance's api.binance.com Blocks Every US IP — Its Own Data Mirror Doesn't

Comments
5 min read
The Invisible Character Hiding In We Work Remotely's Job Descriptions

The Invisible Character Hiding In We Work Remotely's Job Descriptions

Comments
3 min read
Two Thirds Of Stocktwits Messages Have No Sentiment — And The API Says So Explicitly

Two Thirds Of Stocktwits Messages Have No Sentiment — And The API Says So Explicitly

Comments
3 min read
Remotive's Salary Field Mixes Two Different Comma Conventions

Remotive's Salary Field Mixes Two Different Comma Conventions

Comments
3 min read
Mastodon's acct Field Hides the Domain You Already Know

Mastodon's acct Field Hides the Domain You Already Know

Comments
3 min read
Arbeitnow's Pagination Link Lies About Its Own Filter

Arbeitnow's Pagination Link Lies About Its Own Filter

Comments
4 min read
UTC Offsets Are Not Integers — A Remote Job Feed With 5.75 In It

UTC Offsets Are Not Integers — A Remote Job Feed With 5.75 In It

Comments
4 min read
Airbnb's search payload doesn't carry amenities. Here's what we do instead of guessing.

Airbnb's search payload doesn't carry amenities. Here's what we do instead of guessing.

Comments
4 min read
How we keep 200 web scrapers alive

How we keep 200 web scrapers alive

Comments
6 min read
Why your scraper gets blocked at 3 a.m.

Why your scraper gets blocked at 3 a.m.

Comments
5 min read
Export a competitor's entire Google Ads library

Export a competitor's entire Google Ads library

Comments
5 min read
Pay-per-result scraping: what you actually pay

Pay-per-result scraping: what you actually pay

Comments
5 min read
Run an Apify Actor From n8n, Make or Zapier

Run an Apify Actor From n8n, Make or Zapier

Comments
6 min read
Twitch Chat Scraper and 2 More Live-Stream Chat Archives

Twitch Chat Scraper and 2 More Live-Stream Chat Archives

Comments
6 min read
Scrape Car Listings Europe: 22 Marketplaces, One Schema

Scrape Car Listings Europe: 22 Marketplaces, One Schema

Comments
6 min read
OpenCorporates Alternative: US Business Registry Data

OpenCorporates Alternative: US Business Registry Data

Comments
6 min read
Custom Web Scraper Development vs Building In-House

Custom Web Scraper Development vs Building In-House

Comments
6 min read
The US sanctions list still ships with a 1980s DOS end-of-file byte

The US sanctions list still ships with a 1980s DOS end-of-file byte

Comments
4 min read
This API returns bank details for IBANs that are invalid

This API returns bank details for IBANs that are invalid

Comments
4 min read
The Czech company register hands you an ID that is not an ID

The Czech company register hands you an ID that is not an ID

Comments
4 min read
GLEIF ships two status fields for one company, and they answer different questions

GLEIF ships two status fields for one company, and they answer different questions

Comments
5 min read
loading...