Collection

Web scraping proxies for usable data

A scraper can return HTTP 200 and still collect nothing useful. Choose web scraping proxies around the records you need: the right market, a session that lasts long enough, and a request budget your source accepts. Here is how to build that first collection run.

Updated 11 min readData engineers and developers

Worked example

A response is not yet a record

A fictional product collector requests three pages. Only one response is ready for the dataset.

A response is not yet a record
RequestResponseDataset decision
Product A200 · complete fieldsAccept
Product B200 · price missingReview parser
Product C429 · rate limitedPause source
Illustrative exampleRead the interpretation
Where to start
Datacenter or residential. Start with datacenter for a source that accepts hosting IPs. Use residential when the collection needs a consumer ISP or a supported location selector.
How to handle the session
Rotate between independent requests. Keep one sticky session for a short, stateful flow.

Build a small collection run

  1. Define a complete record

    Pick one source and a small set of representative pages. Write down the fields that make a record usable, including source URL, collection time, currency, and a stable identifier. Check access rules before scheduling requests.

  2. Verify the route before parsing

    Generate credentials for one network and check the observed exit using the Databay IP endpoint. Then fetch one permitted page with a timeout and a per-host request limit. Save the response before adding extraction logic.

  3. Validate, then scale

    Separate transport, HTTP, and parsing failures. Review missing-field rates and bytes per accepted record. Expand the run only after the output is complete and the source budget supports it.

A response is not yet a record

A fictional product collector requests three pages. Only one response is ready for the dataset.

Measure accepted records after parsing and validation. Count incomplete responses and rate limits in the run, even when they never reach the final dataset.

What to measure: cost per usable record

Divide the traffic cost of the whole run, including failed requests, by accepted records. A cheaper gigabyte does not necessarily produce a cheaper dataset.

Choose the Lowest-Cost Network That Fits the Authorized Job

Start with the source agreement and the network-origin variable the job actually requires. All Databay products are shared pools, bill by transferred traffic, support HTTP proxying, HTTPS CONNECT, and SOCKS5, rotate on a new connection, and can repeat an exit. A new connection does not guarantee a fresh IP.

Databay web scraping proxy product-selection table
Product and live price pathChoose it whenHard boundary
Premium Residential pricingThe approved question genuinely needs a consumer-ISP origin or one fine-grained country, state, city, ZIP, coordinate, or ASN request.One selector at a time, subject to live route availability; requested sticky sessions are at most 120 minutes and can end early.
Residential Flex pricingA lower-cost residential origin with country or continent selection answers the question.No city, state, ZIP, coordinate, or ASN selector; requested sticky sessions are at most 30 minutes and can end early.
Shared Datacenter pricingAn owned, allowlisted, or contracted endpoint accepts a hosting-network origin and cost matters more than consumer-network provenance.Shared and rotating, not static or dedicated; country or continent selection and requested sticky sessions up to 120 minutes.
Shared Mobile pricingAn authorized test specifically needs a carrier-network origin.Country or continent selection only; no carrier, device, SIM, modem, exclusive-IP, or radio-generation guarantee; requested sticky sessions up to 120 minutes.

Reject every option when the job requires a permanent allowlisted address, an exclusively assigned IP, guaranteed continuity, a specific mobile carrier, or access that the source has refused. Network class is a measurement input, not a permission or success tier.

Start With the Smallest Live Package and One Safe Setup

Do not size a pilot from an advertised pool count. Open the matching live pricing page above and choose its smallest currently orderable package; the page supplies the current allowance, payable total, traffic validity, and checkout path. There is no paid-network free trial. Begin with one request and one worker, then measure bytes per accepted record before buying more traffic.

Prove only the proxy hop first. The command below uses Databay's owned IP diagnostic, finite timeouts, explicit Basic proxy authentication, and a configuration streamed over standard input so the expanded password is not a cURL argument. It is a connection check, not an inventory or destination-success benchmark.

{
  printf 'proxy = "%s"\n' 'http://gw.databay.co:8888'
  printf 'proxy-user = "%s:%s"\n' "$DATABAY_PROXY_USER" "$DATABAY_PROXY_PASS"
  printf '%s\n' 'proxy-basic' 'noproxy = ""' 'connect-timeout = 5' 'max-time = 15' 'fail-with-body' 'silent' 'show-error'
  printf 'url = "%s"\n' 'https://databay.com/what-is-my-ip/json'
} | curl --disable --config -

This POSIX-shell form was checked against an isolated loopback proxy harness; it does not contact a third-party target. Keep secrets in an approved secret store, disable shell tracing, and use curl.exe explicitly when PowerShell aliases curl. The tested cURL proxy guide covers Windows, 407, CONNECT, SOCKS5h, and redacted diagnostics; the Python Requests and Scrapy guides provide application examples. Replace the diagnostic only with an endpoint you own or are expressly authorized to collect.

Rotating vs Sticky Sessions for Web Scraping

Databay publishes connection-based rotation and bounded sticky-session ceilings, but it does not publish a universal concurrency allowance for customer collectors. Start at one in-flight request. Increase workers only while the source's documented source-wide allowance, your response validator, storage pipeline, bandwidth budget, and stop controls all remain inside their declared limits. Apply one per-host budget across every exit, account, process, and region; more IP addresses do not create more permission or quota.

Connection reuse matters. A pooled HTTP client can send several requests through one connection, while a browser can open many connections for one page. Without a session label, a new connection may select another shared exit but can repeat the prior exit. Use rotation only for independent approved samples. Request a sticky session when a short authorized flow needs cookies or route continuity, keep one label for that flow, and design for early route loss. Do not change labels or open more connections after a block, challenge, quota response, or account restriction.

Predeclare the maximum in-flight requests, requests per minute, bytes per minute, total pages, retry count, total deadline, and shutdown owner. Raise only one limit at a time and retain failed and repeated routes in the result rather than hiding them.

Approve the Source Before Building the Collector

Prefer an official API, feed, bulk export, license, or publisher partnership. For a remaining public-page need, create a source register with the owner, written authority, permitted paths and fields, purpose, user agent and contact, robots URL, applicable terms, rate guidance, retention, republication rights, review date, and the person who can stop the run. Public visibility alone is not authorization.

The Robots Exclusion Protocol is a crawler-control standard, not a grant of access. Identify the crawler accurately and obey the rules that apply to it. If robots retrieval fails because the service is unavailable, use the standard's conservative complete-disallow behavior until it can be checked; do not interpret the outage as permission. Authentication, login, paywall, and technical-control boundaries still apply even when a path is not disallowed.

Limit the first collection to the smallest URL set and fields that can answer the stated decision. Cache stable reference data, use ETag or Last-Modified validators where the source supports them, and omit images, fonts, media, and scripts that are outside the approved scope. Re-run the authority review when a redirect changes host, the source terms change, the schema expands, or the downstream use changes.

Use an HTTP Failure Ladder, Not Automatic Rotation

Classify the first failed layer before retrying. A 407 belongs to the proxy hop: check the Databay credential and documented routing flags without exposing the password. A destination 401 or 403, login wall, CAPTCHA, or explicit refusal is a stop-and-review outcome. It is not a trigger for another exit, account, fingerprint, or protocol.

Safe web collector response decisions
EvidenceCollector decision
200 with expected type and schemaValidate size and fields, then record the representation and provenance.
304 Not ModifiedReuse the validated stored representation and update the observation record; do not treat it as a new body.
RedirectRecheck host, path, permission, credential forwarding, and redirect cap before following.
401, 403, login, or challengeStop, preserve the evidence, and resolve authorization through the source owner or approved API.
429 Too Many RequestsHonor Retry-After when supplied and pause the source-wide budget. Do not distribute retries across exits.
502, 503, 504, timeout, or resetFor an approved idempotent GET only, allow a small bounded retry inside one overall deadline; otherwise stop.

RFC 6585 defines 429 and its optional Retry-After signal, while RFC 9110 defines HTTP semantics and validators. Preserve status, headers, attempt number, and final decision. Never discard refusals to calculate a cleaner success rate.

Keep a Provenance and Quality Ledger for Every Result

Store the source URL, UTC request and response time, method, response status, content type, content length, ETag or Last-Modified value, requested and independently observed route, proxy product, client and parser version, schema version, content hash, field-level missingness, retry count, and result class. Record whether account, cookie, language, device, and session state were present, but hash or redact identifiers and never log proxy passwords, authorization headers, cookies, tokens, raw personal data, or full challenge pages.

Validate response type and required fields before parsing. Quarantine HTML error documents returned with a 200, challenge pages, consent walls, partial bodies, currency or locale mismatches, duplicate records, and implausible field changes. Manually review a declared sample from each source and parser revision. A large pool cannot correct selection bias, a stale cache, or a broken parser.

Measure accepted-record ratio, missingness, duplicate rate, age at use, transferred bytes, retry count, and cost per accepted record = (proxy spend + compute + review) / accepted records. Set pilot gates before the run and include all failures in the denominator. These are customer measurements for the approved target, not Databay success claims.

Treat Regional Collection as a Controlled Sample

Use geographic targeting only when network origin is part of an authorized research question. Hold the URL, product or subject, language, cookies, account state, device profile, delivery assumption, client version, and collection window constant. Change one supported route selector, verify the observed exit independently, and repeat enough declared samples to distinguish a route-specific observation from normal variation.

Country, state, city, ZIP, coordinate, or ASN selection changes a network signal. It does not set GPS, browser language, timezone, tax residence, delivery address, account history, experiment bucket, or personalization. Report the bounded conclusion: the named response observed under the recorded conditions at that time. Do not describe one proxy result as what everyone in a location sees or infer city coverage from a product label; live route availability must be checked.

Stop Where Permission, Privacy, or Source Controls Stop

Databay's Acceptable Use Policy requires respect for target terms and robots instructions and prohibits harmful load, unauthorized access, abusive scraping, fake-account creation, and attempts to defeat security or rate controls. Do not collect login-gated or non-public data without the owner's express authorization, use stolen or shared credentials, evade a block, solve or route around a CAPTCHA, falsify client identity, or continue after the source withdraws permission.

Minimize personal data, secrets, copyrighted material, and sensitive fields. Define access control, encryption, retention, deletion, correction, and downstream-use rules before collection. Contract, copyright, privacy, database, consumer-protection, and computer-access obligations vary by source and jurisdiction; robots compliance and proxy access do not settle them. Obtain qualified legal and security review for the actual program.

Pause when authorization is missing, terms are ambiguous, robots cannot be evaluated, a response introduces a new access boundary, or the collection's purpose changes. A defensible web scraping proxy workflow can name its owner, source, allowed fields, source-wide budget, stop conditions, evidence record, and deletion path before the first paid request.

When the result looks wrong

HTTP 200 but empty data

The page may be a login screen, challenge, or changed template.

Next step: Check the final URL, content type, and required fields before accepting the record.

The same IP appears again

Pool rotation can return a previous exit; HTTP keep-alive can reuse a connection.

Next step: Log connection and session behavior. Do not rely on an unseen-IP guarantee.

429 responses increase

Several workers may be sharing the same source quota.

Next step: Pause the source queue and honor Retry-After across workers; adding exits does not increase permission.

Sources and further reading

The worked example is an illustrative exercise. Documentation and existing test evidence support the technical guidance; their scope and dates remain attached to the relevant sections.

Choose the network your task needs

Four products, different location controls and session windows. Compare the current package for the route you actually need.

All four products use shared, rotating pools and traffic-based billing. Requested sessions can end early; location selection depends on live route availability. Verify protocols, minimum order, and traffic validity on the product page.

Web Scraping questions, answered

Which Databay proxy type is best for web scraping?
Use Shared Datacenter for an owned or contracted endpoint that accepts hosting-network traffic, Residential Flex for lower-cost country or continent residential sampling, Premium Residential for a genuinely required fine geographic or ISP-origin sample, and Mobile only when carrier-network origin is material. None grants target permission or guarantees acceptance.
What is the smallest package I should buy for a scraping pilot?
Open the selected product's live pricing page and choose its smallest currently orderable package. Start with one approved source and one worker, measure transferred bytes and cost per accepted record, then buy more only if the route passes the declared pilot gates. Databay does not offer a paid-network free trial.
How many concurrent scraping requests does Databay allow?
Databay does not publish one universal collector-concurrency allowance. Set concurrency from the source-wide authorized rate, response size, client behavior, bandwidth budget, and stop controls. Begin with one in-flight request and do not multiply a target quota by the number of proxy exits.
Should a scraper use rotating or sticky sessions?
Use new-connection rotation for independent permitted samples and request a sticky session only when a short authorized flow requires cookies or route continuity. A new connection can repeat an exit, and a sticky route can end before its published maximum; neither mode is static or dedicated.
Can web scraping proxies bypass CAPTCHAs or blocks?
They must not be used for that purpose. Treat a CAPTCHA, 401, 403, login wall, or explicit refusal as a stop-and-review outcome. Use the source's official API, license, support path, or written authorization rather than changing exits or identities.
What should a scraper do after HTTP 429?
Pause the source-wide request budget, honor Retry-After when supplied, retain the response evidence, and review the approved rate. Do not distribute retries across IPs. Retry transient server or network failures only for approved idempotent requests, with a small cap and one overall deadline.
Is public web scraping with proxies legal?
There is no universal answer. Source authorization, terms, robots controls, authentication boundaries, data rights, purpose, privacy, jurisdiction, retention, and republication all matter. Obtain qualified advice for the specific collection program.

Put the guide to work.

Build a connection for web scraping, then check one route before scaling.

Pay as you go. Pricing, order minimums, and traffic validity vary by network.