PiratProxies

Web scraping

How to use proxies with Crawlee

Crawlee is a crawling library for Node.js with HTTP crawlers and browser crawlers behind one interface. A ProxyConfiguration holds your proxy addresses and hands them out.

Which proxy to use

For most scraping, Residential Lite is the cheapest way to get home IP addresses in the right country. Use Residential when you need a particular state or city, and Unlimited Datacenter for targets in the United States that do not block data centre addresses.

What to enter

A PiratProxies plan gives you four things: a host, a port, a username and a password. These are the values for Residential; the username and password are on your plan page.

Hostresi.piratproxies.com
HTTP port8080
SOCKS5 port1080
UsernameUSERNAME
Passwordfrom your plan page

As one address:

http://USERNAME:PASSWORD@resi.piratproxies.com:8080

The country and the session are chosen in the username, not in a separate setting. The generator on your plan page writes the username for you, and Targeting and sessions explains each part.

Steps

  1. Create a ProxyConfiguration with your proxy address in proxyUrls.
  2. Pass it to the crawler. It applies to plain HTTP crawlers and to Playwright or Puppeteer crawlers alike.
  3. Add several addresses with different session IDs if you want Crawlee to rotate between fixed sessions.

Example

JavaScript

import { CheerioCrawler, ProxyConfiguration } from 'crawlee';

const proxyConfiguration = new ProxyConfiguration({ proxyUrls: ['http://USERNAME:PASSWORD@resi.piratproxies.com:8080'] });

const crawler = new CheerioCrawler({
  proxyConfiguration,
  async requestHandler({ request, body }) {
    console.log(request.url, String(body).trim());
  },
});

await crawler.run(['https://api.ipify.org']);

Replace USERNAME and PASSWORD with the login from your plan page. The example asks an IP-check address, so the output is the address your request left from.

Rotating or sticky

For crawling many pages with Crawlee, leave the username without a session so every request leaves from a new IP address. For anything with steps that belong together, such as a login, a cart or a paginated search that sets cookies, add a session to the username so those requests share one address.

A sticky username looks like this:

USERNAME-country-us-time-600-session-a1b2c3d4

If it does not work

  • Crawlee ties each of its sessions to one proxy address. With a rotating username, that address still gives a new IP per connection.
  • A 407 error means the username or password was not accepted. Copy both again from your plan page, and check that nothing added a space or cut the username short.
  • If the IP address is in the wrong country, look at the username: the country code is part of it. More fixes.

Questions

Which PiratProxies proxy should I use with Crawlee?

For most scraping, Residential Lite is the cheapest way to get home IP addresses in the right country. Use Residential when you need a particular state or city, and Unlimited Datacenter for targets in the United States that do not block data centre addresses.

Crawlee is a product of its own makers. PiratProxies is not affiliated with it; the name is used here only to say what this guide is about. Use it within the rules of the sites you work with and our acceptable use policy.