Rayobyte vs Webshare

Rayobyte vs Webshare for Scrapy: Lists, Gateways and Routing

Rayobyte and Webshare compared for Scrapy: request.meta proxies, rotating a Webshare list in middleware, Rayobyte gateways and Web Unblocker, sessions, concurrency and costs.

By Team of Monkeys Editorial Updated 3 min read Affiliate disclosure

This guide contains affiliate links to Geonode, Webshare and Rayobyte. If you buy through them we may earn a commission, at no extra cost to you.

Scrapy: Rayobyte vs Webshare illustration showing Scrapy spider connecting through Compare to Items, covering middleware, routing 3jdej38j4

Scrapy on both

Scrapy reads request.meta["proxy"]. For Rayobyte, set a gateway URL; for Webshare, set the backbone URL or pick an IP from your list in a middleware. See Rayobyte with Scrapy, Webshare with Scrapy and Scrapy proxies.

A mixed middleware

python
import os, random
from urllib.parse import urlparse

WS_LIST = open(os.environ["WEBSHARE_LIST_FILE"]).read().split()
RY_RESI = os.environ["RAYOBYTE_RESI_PROXY"]
HARD = {"hard-shop.example", "big-marketplace.example"}

class MixedProxy:
    def process_request(self, request, spider):
        if "proxy" in request.meta:
            return
        if urlparse(request.url).hostname in HARD:
            request.meta["proxy"] = RY_RESI
        else:
            host, port, user, pw = random.choice(WS_LIST).split(":")
            request.meta["proxy"] = f"http://{user}:{pw}@{host}:{port}"

Cheap Webshare IPs handle easy domains; Rayobyte residential handles the hard ones.

Differences

RayobyteWebshare
Easy sitesRotating datacenter per GBPer-IP lists
Hard sitesResidential, Web UnblockerResidential plans
Unblocker fits proxy modelYesN/A

Concurrency

Keep per-IP concurrency low on Webshare lists (many requests share each IP) and size CONCURRENT_REQUESTS to your Rayobyte plan.

With Geonode: Scrapy across all three.

Residential tip: A common split is Webshare for cheap per-IP lists and Rayobyte for residential traffic, mobile IPs or managed scraping. Our using Rayobyte with Scrapy covers each Rayobyte product.

A real-world example

A crawler indexes 2 million pages a month from 400 sites. Its middleware picks a random IP from a 1,500-IP Webshare list for most sites and routes 30 protected sites to Rayobyte residential. Scrapy stats count responses by provider and status, so the team can see in each crawl report where blocks happen and whether a site should move routes.

Useful Scrapy stats

  • provider/webshare/200, provider/rayobyte/403 and so on, incremented in the middleware.
  • Bytes downloaded per provider, to estimate cost.
  • Retry counts per domain, to spot sites that need promotion.

Pros and cons for Scrapy

Rayobyte

  • Every product, including the unblocker, fits Scrapy's proxy model.
  • Residential cheaper at volume.

Webshare

  • Cheap lists for broad crawls.
  • Backbone gateway for rotation without a list.

Budget tip: To test the Webshare side of this comparison, start with Webshare's free plan: 10 datacenter proxies and 1 GB a month with no card. See using Webshare with Scrapy.

Bottom line

A two-route middleware (Webshare by default, Rayobyte for protected domains) suits most Scrapy projects.

Rayobyte, Geonode and Webshare are three options among many. Our best proxies in 2026 guide explains how to match a proxy type to each task, and cheap proxies that work shows where budget providers fit.

Proxy tip: If your residential usage goes up and down, compare Geonode: its per-GB residential bandwidth doesn't expire, so you only pay for what you use. See using Geonode with Scrapy.

Key takeaways

  • Both plug into request.meta["proxy"].
  • A middleware can mix cheap Webshare IPs with Rayobyte residential.
  • Rayobyte's Web Unblocker fits Scrapy's proxy model.
  • Keep per-IP concurrency low on lists.

FAQ

Do I need a rotation package with Webshare?

Not if you use the backbone or a simple middleware like the one above.

Can Scrapy use Rayobyte's Web Unblocker?

Yes, as a proxy URL.

Which is cheaper for big crawls?

Webshare lists on lenient sites; Rayobyte residential on protected sites at volume.

How do I add custom stats in Scrapy?

Call spider.crawler.stats.inc_value("provider/webshare/200") from your middleware.

Can I switch all traffic to one provider during an outage?

Yes; a setting such as FORCE_PROVIDER in your router makes it a one-line change.

Where should I store proxy credentials in Scrapy?

In environment variables read by settings.py, never in the repository.

Affiliate disclosure: Team of Monkeys is an affiliate of Geonode, Webshare and Rayobyte. Links and banners marked as sponsored, and links to Geonode, Webshare and Rayobyte in the text, use our referral links, and we may earn a commission if you buy through them, at no extra cost to you. Our explanations and comparisons are written to be useful whichever provider you choose.

Editorial note: Proxy providers change their pools, features and prices often, so treat any figures here as typical ranges at the time of writing and confirm current terms with the provider before you buy.