Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Build the smallest useful scraper in Make with two modules: an HTTP Make a request module to fetch an allowed HTTPS page, followed by the Text parser module to extract fields from the returned HTML. This works when the data is already present in the HTTP response. If a site fills its content only after browser JavaScript runs, use its official API or a browser-based scraping service instead of assuming the same scenario will work.

What this Make scraper can and cannot do

Make’s HTTP app can request webpages and APIs. Its documentation explicitly lists unauthenticated requests as appropriate when the target needs no credentials, including web scraping. Requests must use HTTPS, and Make rejects connections that rely on unverified, self-signed certificates.

The workflow below is intentionally simple:

  1. Choose a page or API you are permitted to access and list the fields you need.
  2. Fetch the target with HTTP > Make a request.
  3. Inspect the response to confirm the required content is actually present.
  4. Use Text parser to retrieve values from the HTML.
  5. Map those values into the next module in your scenario.

It is not a universal crawler. A page can return a shell of HTML and create the visible content later with JavaScript. In that case, the HTTP response will not contain the records you see in a normal browser.

Before you create the scenario

Pick an allowed target and define fields

Use a public page or API that you are allowed to access. Write down exact fields such as title, price, publication date, product URL, or an API’s JSON keys. Check the target’s terms, robots guidance where relevant, and any contractual restrictions. Make’s August 2023 Master Service Agreement puts responsibility for compliance with applicable laws and legally necessary privacy consents on the customer; that agreement does not decide whether a particular scrape is lawful in your jurisdiction.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Decide whether you need an API

If the publisher offers an official API, prefer it. APIs generally provide stable fields, authentication instructions, and documented pagination. A webpage scrape is more fragile because a redesign can change the markup without warning.

Confirm the response type

  • HTML page: the Text parser can work when the desired values are in the response body.
  • JSON API: map the returned JSON fields directly and follow that API’s authentication and pagination rules.
  • Browser-rendered page: the initial response may omit the data; plan for an official API or a managed browser integration.

Build the basic two-module scenario

1. Add HTTP > Make a request

  1. Create a new Make scenario and add HTTP > Make a request.
  2. Enter the target’s complete https:// URL. Do not use an unverified or self-signed HTTPS certificate.
  3. Select the method required by the target. Use GET for a normal page or a read-only API endpoint; use another method only when the API documentation requires it.
  4. Choose the authentication mode required by the target. Select No authentication only when no credentials are required.
  5. Add query-string parameters, headers, cookies, or a user agent only when the target documentation calls for them.
  6. Configure pagination only for an endpoint that documents pagination. Make’s HTTP app supports request pagination, and its current documentation describes native pagination in HTTP Version 4; follow the endpoint’s cursor, page, limit, and stopping rules rather than guessing.
  7. Run the module once. Expand the output and inspect the status, headers, content type, and body.

Do not start by writing selectors. First verify that the response contains the text or markup you want. Search the captured body for a known title or value and compare it with the live page.

2. Extract values with Text parser

  1. Add Make’s Text parser module after the HTTP module.
  2. Map the HTTP response body into the parser’s source text.
  3. Configure an extraction pattern for each field you need. The parser documentation establishes the extraction capability, but it does not prescribe selectors for a particular website, so inspect the target’s actual HTML and choose patterns that match its structure.
  4. Run the parser and check every output. Test a missing field as well as a normal result; a changed class name or absent element should not silently create bad records.

For an API response, skip HTML parsing and map the returned JSON properties. If the API returns an array, add the appropriate iterator or array-processing module before your destination.

3. Send the records somewhere useful

Add the destination that fits your workflow—for example, a spreadsheet, database, notification, or another API—and map the extracted fields. This is an example design choice, not a guaranteed configuration for every destination. Preserve the source URL and capture time so you can audit where each record came from.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

HTML extraction that survives small changes

Prefer a distinctive element or attribute that represents the field, rather than depending on a long chain of layout-specific classes. Keep separate extraction rules for separate fields, and validate the result against a known page. If a field is optional, define what an empty result means before writing it downstream.

Store the raw response or a diagnostic sample during development, but avoid retaining personal data you do not need. Add a route or error handler for non-success HTTP statuses, empty bodies, and parser results that contain no records. A successful HTTP status only means the server returned a response; it does not prove that the expected content was present.

When the HTTP module returns no visible data

JavaScript-rendered content

Many sites send an initial document and then fetch products, listings, or article text in the browser. If your Make output lacks content that is visible in Chrome, inspect the page’s network behavior and look for an official data endpoint first. If there is no suitable API, Make’s ScrapeNinja integration documentation describes processing JavaScript and CSS with a real Chrome browser. Make also lists a ScrapingBee integration with headless-browser, proxy, and structured-output capabilities. These are optional managed services, not requirements for a static page.

Which approach fits?

Situation Best first choice Reason
Data is in the HTTP body Make HTTP + Text parser Fewest moving parts and direct mapping in one scenario.
Structured data is available from an official API Make HTTP API request Use documented fields, authentication, and pagination.
Content appears only after browser JavaScript Official API, then a managed browser integration The initial HTTP response does not contain the required records.
Need browser behavior such as waiting for rendered elements ScrapeNinja or ScrapingBee integration The listed integrations provide browser-oriented processing features; current terms and limits must be checked before deployment.

Pagination, authentication, and request controls

Pagination

Read the target API’s documentation to determine whether it uses page numbers, offsets, cursors, or a next-link. Configure Make’s HTTP pagination settings to stop on the documented condition. Make’s documentation mentions a configurable limit up to 10,000 items and a 3,200-item limit in certain pagination contexts; treat these as product configuration details and verify the current behavior in the live documentation before relying on an exact ceiling.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Authentication and headers

Use the target’s required method—basic authentication, a bearer token, an API key, or another documented scheme. Keep secrets in Make’s connection or secured field rather than embedding them in a URL or logging them. Add an Accept header when an API documents a preferred response format. Do not copy browser cookies or authorization headers unless you have permission and a clear operational need.

Rate and failure handling

Respect the target’s published rate limits. Add error handling for timeouts, HTTP 4xx/5xx responses, empty bodies, and parser output with zero matches. Use retries only for transient failures and avoid retrying authentication errors or a blocked request indefinitely. For scheduled scenarios, record the last successful page or cursor so a rerun does not duplicate data.

Troubleshooting common failures

Symptom Likely cause Fix
Connection rejected before a response Non-HTTPS URL or unverified/self-signed certificate Use the target’s valid HTTPS endpoint and certificate.
401 or 403 response Missing, expired, or incorrect credentials; access is not permitted Follow the target’s authentication instructions and confirm you are authorized.
200 response but no records Content is loaded by JavaScript or the selector no longer matches Search the raw body; use an API or browser-based integration when the data is not present.
Parser returns empty or wrong values HTML structure changed, pattern is too broad, or optional field is absent Inspect a fresh response, narrow the pattern, and add validation for missing fields.
Only the first page is collected Pagination was not configured or the stop rule is wrong Read the API’s pagination documentation and configure its cursor/page semantics.
Scenario becomes slow or times out Too many requests, large responses, or a browser-rendered target Reduce the batch, honor rate limits, request only needed fields, and use a suitable browser service when rendering is required.

Performance, reliability, and maintenance

  • Request the smallest useful representation. An API endpoint with selected fields is usually easier to parse than a full page.
  • Separate fetching, parsing, and storage so you can replace one stage without rebuilding the scenario.
  • Keep a fixture response for parser changes, then compare it with a current response before publishing updates.
  • Monitor zero-result runs, status-code changes, and sudden field shifts; these often indicate a redesign or access change.
  • Make no guarantee that a target remains stable. Your reliability depends on the target’s availability, markup, rate limits, and access policy as well as on Make.

Or skip the browser setup

If the page requires browser rendering or you simply want a screenshot rather than parsed fields, ScreenshotNeo provides a website screenshot API and MCP server. It accepts a URL and returns PNG, JPEG, WebP, or PDF. Before capture it accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the result with X-Page-Verdict and X-Billed headers.

One request is enough:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Python:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

See the complete options and response details in the ScreenshotNeo documentation. Its MCP server exposes take_screenshot, get_page_info, and capture_pdf to Claude, Cursor, and other MCP clients. Plans include 1,000 screenshots per month free with no card; paid plans start at $5 for 3,000 screenshots. Create a free ScreenshotNeo account.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

FAQ

Can Make scrape any public website?

No. It can fetch only what the target returns and permits you to access. JavaScript-only content, authentication barriers, rate limits, and legal or contractual restrictions can require a different approach.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Should I parse HTML or use an API response?

Use the official API when one exposes the fields you need. Parse HTML when the values are present in the page response and no better supported interface exists.

How do I know whether JavaScript is the problem?

Run the HTTP module and search its raw body for a value visible in the browser. If it is absent while the browser displays it, the page likely obtains it after the initial response.

Frequently Asked Questions

Can I schedule this scraper in Make?

Yes. Add a schedule to the scenario, but monitor empty results, status changes, and target rate limits so a scheduled run does not create duplicates or excessive requests.

Is Text parser required for JSON APIs?

No. Map documented JSON fields directly; use Text parser for values embedded in HTML text.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What should I do when a target changes its markup?

Capture a fresh response, update the extraction patterns, test missing-field behavior, and keep a small fixture response for future parser checks.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.