Frequently asked general questions
What is a Bright Data web scraper?
What is a Bright Data web scraper?
What is Bright Data Scraper Studio?
What is Bright Data Scraper Studio?
What is the difference between Scraper Studio and the Scrapers Library?
What is the difference between Scraper Studio and the Scrapers Library?
Can one scraper collect data from multiple websites?
Can one scraper collect data from multiple websites?
Can Scraper Studio discover URLs, or only scrape URLs I provide?
Can Scraper Studio discover URLs, or only scrape URLs I provide?
- PDP: provide a list of product URLs you already have; get one row per URL.
- Discovery: provide a category or listing URL; get one row per item found on that listing.
- Discovery + PDP: provide a category or listing URL; get full per-product detail for every item.
- Search: provide a keyword and optional country when you do not have URLs.
- Sitemap: provide a domain or
sitemap.xmlURL; get either all URLs found in the sitemap or full per-page detail for every URL.
next_stage(), rerun_stage() and load_sitemap(). See What can the AI Agent build? and Functions.Can Scraper Studio scrape mobile apps?
Can Scraper Studio scrape mobile apps?
emulate_device('iPhone X') so the target site serves its mobile web pages. Native iOS or Android app data is out of scope. See Functions.Should I build a custom scraper for LinkedIn or other covered sites?
Should I build a custom scraper for LinkedIn or other covered sites?
Inputs, outputs and schemas
What is a scraper input?
What is a scraper input?
What is a scraper output?
What is a scraper output?
Why did I receive more records than inputs?
Why did I receive more records than inputs?
What is a search scraper?
What is a search scraper?
What is a discovery scraper?
What is a discovery scraper?
What do I do if I updated the schema of a managed scraper while Bright Data is still working on it?
What do I do if I updated the schema of a managed scraper while Bright Data is still working on it?
input(output)_schema_incompatible error.To trigger the scraper anyway and ignore the schema mismatch, click Trigger anyway in the UI or add a parameter to your API request:- Output schema incompatible:
override_incompatible_schema=1 - Input schema incompatible:
override_incompatible_input_schema=1
Can I get the full HTML of every page a scraper visits?
Can I get the full HTML of every page a scraper visits?
html system field in the output schema to get a full HTML snapshot of the page as a file, downloaded to your configured storage destination. In interaction code, tag_html() saves the HTML of the current page to a named field. On Browser worker scrapers, you can also turn on WARC output to archive the exact HTTP responses the browser received for every page the scraper collects. See Input and output schema, Functions and WARC snapshots.Can a scraper download files such as PDFs?
Can a scraper download files such as PDFs?
image, pdf, doc or video field to the output schema and enable Download, and Bright Data Scraper Studio stores the file in your configured delivery destination. File downloads are billed separately from page loads. See Input and output schema.Building and editing scrapers
How do I start building a scraper?
How do I start building a scraper?
- Build with the AI Agent: describe the data you want in plain language. See Scraper Studio AI Agent.
- Build in the IDE: write JavaScript directly. See Develop a scraper with the IDE.
- Request a managed scraper: Bright Data’s data team builds and maintains the scraper for you.
Can I edit the code in the IDE after the AI Agent builds a scraper?
Can I edit the code in the IDE after the AI Agent builds a scraper?
How does the AI Agent build a scraper?
How does the AI Agent build a scraper?
Do I own the scraper code, and can I export it?
Do I own the scraper code, and can I export it?
Does Scraper Studio work on JavaScript-heavy or dynamic pages?
Does Scraper Studio work on JavaScript-heavy or dynamic pages?
Does Scraper Studio run a real browser?
Does Scraper Studio run a real browser?
curl, without running JavaScript, which makes it faster and cheaper. See Worker types.Can I scrape pages behind a login?
Can I scrape pages behind a login?
set_session_cookie() to set a session cookie or set_session_headers() to send extra HTTP headers. See Functions and Worker types.Can I choose the proxy country or keep the same session across pages?
Can I choose the proxy country or keep the same session across pages?
country() with a two-character ISO country code to route the scraper through that country, or proxy_location() for finer control by country, latitude, longitude and radius. proxy_location() requires a Browser worker. Call preserve_proxy_session() to reuse the same proxy session across child stages. See Functions.How does a scraper move across multiple pages?
How does a scraper move across multiple pages?
next_stage() sends new input values, such as a result URL, to the next stage. The page that calls next_stage() is the parent crawl and each page it creates is a child crawl, which you can trace in the crawl inspector. Parser code is available only in the last stage, so earlier stages use load_html to read the page. See Web scraping basics in Scraper Studio and Complete Scraper Studio IDE examples.Self-Healing
Does Self-Healing run automatically?
Does Self-Healing run automatically?
bdata scraper heal in the Bright Data CLI, or with POST /dca/collectors/{collector_id}/refactor_template (Trigger Self-Healing). With Auto save code Off, Scraper Studio emails the suggested fix for review before it reaches production. Every path keeps the same Collector ID.Can I review or roll back a Self-Healing fix?
Can I review or roll back a Self-Healing fix?
Running and triggering scrapers
What are the options for triggering a scraper run?
What are the options for triggering a scraper run?
- By API: regular request, queue request, or replace request
- Manually: from the control panel
- On a schedule: hourly, daily, weekly or custom
What is a queued API request?
What is a queued API request?
What is the parallel job limit?
What is the parallel job limit?
How do I debug a real-time scraper?
How do I debug a real-time scraper?
Blocking and unblocking
How does Scraper Studio handle blocking and CAPTCHAs?
How does Scraper Studio handle blocking and CAPTCHAs?
solve_captcha(), detect_block(), country() and proxy_location() for edge cases. Self-Healing repairs scraper code, not blocks, so for persistent block or blocked errors see How does Scraper Studio handle blocking and CAPTCHAs?.Billing and limits
What is a CPM in Scraper Studio billing?
What is a CPM in Scraper Studio billing?
Which operations count as a billable event?
Which operations count as a billable event?
navigate()request()load_more()- Media file download (billed per GB, separate from CPM)
Does Scraper Studio have its own free trial allotment?
Does Scraper Studio have its own free trial allotment?
Snapshots and data retention
How long are snapshots available after a collection?
How long are snapshots available after a collection?
- Batch collections: 16 days
- Real-time collections: 7 days
How to report issues
How do I report an issue with a scraper?
How do I report an issue with a scraper?
- Data (missing fields, missing records, parsing errors): routed to the scraper engineer. Available only for managed scrapers.
- Collection and delivery (incomplete delivery, slow scraper): routed to the support team.
- Other (UI issue, product question): routed to the account manager.
What information should I include in a bug report?
What information should I include in a bug report?
- The issue category (wrong data, missing records, delivery problem, IDE issue, other)
- A description of the exact problem
- The affected job ID
- A screenshot or file that shows the issue, if possible
How do I know Bright Data is working on a managed-scraper request?
How do I know Bright Data is working on a managed-scraper request?