AI ScraperGuide

Nothing found, proxies and captchas

A search for a value that does not exist is a normal answer, not a failure; a site that blocks servers needs a proxy; a captcha needs a solver. A scraper learns each of these during its build, records it with the version, and tells you plainly what is missing — it never fails a run without saying why.

What you will learn
  • Tell “Nothing found” apart from a failed run
  • Choose how a scraper goes out: direct, rotating proxies or one fixed proxy
  • Set up a captcha solver for the project
  • Read the notice a scraper shows when something is missing

“Nothing found” is an answer

During the build, the scraper replays its walk once with a value shaped like yours but certain not to exist — BR102019000123 becomes BR999999999999 — and keeps the one sentence only that page shows, such as No process found. The program checks for it at the step the invalid value could not pass.

Pythonprocess_lookup.py
NOT_FOUND = "No process found"

# … inside main(), right after the search is submitted:
if waiso.page_has_text(page, NOT_FOUND):
    return waiso.not_found()

Such a run ends successfully, with no rows and notFound: true. The Runs page shows a neutral Nothing found chip, a flow step gets notFound in its output, and nothing is sent to Autofix — the site answered, it just had nothing to give.

RunsEvery script and flow run in this project
Live
Search name or value · amount>100Ctrl KToday7 days30 daysAll time
Kind: AllStatus: AllWaiting for you 1
campaignFlowTriggered byScheduleDuration713msRan at5 h agoStatusSuccess
load_customersstep 1 of campaignTriggered bycampaignDuration38msRan at5 h agoStatusSuccess
send_offer ×4step 2 · loopTriggered bycampaignDuration188msRan at5 h agoStatusSuccess
approvalFlowTriggered byana@shop.devDuration174msRan at5 h agoStatusWaiting
report.pyTriggered byScheduleDuration6.7sRan at4 h agoStatusSuccess
broken.pyTriggered byana@shop.devDuration877msRan at26 min agoStatusFailed
On the Runs page a search with no result reads “Nothing found”, not failed.

Proxies

A new scraper starts with no proxy: a proxy nobody chose spends the browser pool and can change what a site returns. Open the scraper’s Network & Proxies to choose how its runs go out.

ModeWhat runs do
OffGo out directly, from our own address. Fast, but a site that blocks us stays blocked.
RotatingAlternate among the proxies of the chosen group; if a site refuses one, the run tries the next.
StaticAlways leave through the one proxy you pin. Simple, but no fallback.

If the build itself is blocked, it retries through the project’s proxy pool and records that this robot needs a proxy. With no proxy in the project, the Studio shows This robot needs a proxy with an Add a proxy link, and runs fail with proxy_none until one exists.

Captchas

A checkbox captcha is cleared with a click. Anything harder is sent to your solver endpoint, which answers with a token. Configure it once for the project — Solver endpoint URL, an optional auth header and its secret, then Test endpoint — and a scraper may override it when the project allows.

  • A captcha met during the build is recorded and the program declares it with waiso.needs(captcha=…).
  • The engine answers the program’s request for a token; the solver’s secret never reaches the program.
  • Each run says how it went: Cleared by checkbox, Cleared by solver endpoint or Not cleared.

Limits

  • Waiso does not sell proxies or solve captchas itself: you bring the proxies and the solver.
  • A new version keeps the draft’s needs; restoring a version brings back that version’s needs.