ادغام · متوسط

چرخش و اتصالات چسبنده در سطل زباله با یک نرم افزار متوسط دانلود کننده

Httpoxy TimeTeware از پروکسی های معتبر HTTP از طریق درخواست.meta ["proxy] پشتیبانی می کند. Configure دروازه تحویل واقعی، انتشار تنظیمات برای درخواست های پیگیری و تأیید حالت جلسه اختصاص داده شده قبل از افزایش ارز.

2 دقیقه خواندن 4 بخش بازبینی‌شده تیم تحریریه Proxy Cyber

ساده ترین نسخه#

کلاس کردن پاسخ قبل از تجدید نظر. A 403 ممکن است نشان دهنده یک قانون دسترسی باشد که IP دیگر حل نخواهد شد. برای 429، احترام به retry-After و کاهش نرخ درخواست؛ استفاده از backoff برای اتصال موقت یا خرابی های سرور.

عنکبوت
import scrapy

PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"

class PricesSpider(scrapy.Spider):
    name = "prices"
    start_urls = ["https://example.com/catalog"]

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url, meta={"proxy": PROXY})

    def parse(self, response):
        for href in response.css("a.product::attr(href)").getall():
            yield response.follow(href, callback=self.parse_product, meta={"proxy": PROXY})

    def parse_product(self, response):
        yield {"url": response.url, "price": response.css(".price::text").get()}

یک واسطه برای جلسات چسبنده در هر آیتم#

واسطه ها
import hashlib

class Proxy CyberMiddleware:
    GATEWAY = "res.proxy-cyber.com:9000"

    def __init__(self, user, password, country):
        self.user, self.password, self.country = user, password, country

    @classmethod
    def from_crawler(cls, crawler):
        s = crawler.settings
        return cls(s.get("KEY_PROXY_USER"), s.get("KEY_PROXY_PASS"), s.get("KEY_PROXY_COUNTRY", "us"))

    def process_request(self, request, spider):
        # Sticky when the request carries a session key (e.g. one per product flow), rotating otherwise
        key = request.meta.get("session_key")
        user = f"{self.user}-cc-{self.country}"
        if key:
            sid = hashlib.sha1(key.encode()).hexdigest()[:12]
            user += f"-sid-{sid}-ttl-10m"
        request.meta["proxy"] = f"http://{user}:{self.password}@{self.GATEWAY}"
تنظیمات
DOWNLOADER_MIDDLEWARES = {
    "myproject.middlewares.Proxy CyberMiddleware": 350,   # before HttpProxyMiddleware (750)
}
KEY_PROXY_USER = "USER"
KEY_PROXY_PASS = "PASS"
KEY_PROXY_COUNTRY = "de"

CONCURRENT_REQUESTS = 32
CONCURRENT_REQUESTS_PER_DOMAIN = 8
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_TARGET_CONCURRENCY = 4.0
DOWNLOAD_TIMEOUT = 45
RETRY_ENABLED = True
RETRY_TIMES = 2
RETRY_HTTP_CODES = [408, 429, 500, 502, 503, 504, 522, 524]
COMPRESSION_ENABLED = True

استفاده مجدد از اتصال و تخصیص IP کنترل های مختلف است.یک جلسه مشتری از سوکت ها استفاده می کند؛ تنها دروازه تعیین کننده چرخش و رفتار چسبنده-session است.استفاده از پارامترهای جلسه ارائه شده با خدمات شما و تأیید خروجی بیش از چندین درخواست. بستن سوکت یا ارسال اتصال: نزدیک تضمین IP مختلف.

نگه داشتن لایحه#

  • Wastey تصاویر یا اسکریپت ها را بارگذاری نمی کند؛ HTML و JSON فقط یک صفحه اندازه HTML آن را هزینه می کند.
  • قابلیت فشرده سازی (default) و اجتناب از Splash یا ارائه مرورگر مگر اینکه داده ها به آن نیاز داشته باشند.
  • پنهان کردن با HTTPCACHE_ENABLED = True در طول توسعه، شما پرداخت نمی کنید تا دوباره همان صفحات را در حالی که انتخاب کنندگان اشکال زدایی.

مودبانه بودن Per-domain#

استخر یک راه برای بسیاری از بازدید کنندگان مودبانه است، نه یک مهمان. CONCURRENT_REQUESTS_PER_DOMAIN و AutoThrottle هر هدف را با نرخ انسانی در هر خروجی حفظ می کند؛ استفاده قابل قبول از سیاست هر چیزی را که شبیه حمله به نظر می رسد، ممنوع می کند.

پرسش هایی که مردم می پرسند#

آیا نیاز به تعمیر و نگهداری دارم؟

نه با دروازه: چرخش در سمت کلیدی Proxy برای هر اتصال جدید اتفاق می افتد، این بسته لیستی از پروکسی های استاتیک را مدیریت می کند؛ با res.proxy-cyber.com یک پروکسی برای پیکربندی وجود دارد.

چگونه از یک کشور مختلف به هر درخواست استفاده کنیم؟

درخواست را تنظیم کنید.meta [کشور] در عنکبوت و خواندن آن در واسطه برای ساخت پارامتر-cc؛ مثال از یک تنظیمات واحد برای بازگشت استفاده می کند.

حساب کاربری شما

همهٔ پروکسی‌ها را در یک حساب مدیریت کنید

مقایسه شبکه ها، سفارش مکان و پیگیری تعادل و درخواست های پشتیبانی خود را از یک داشبورد.تیم ما پرداخت ها را بررسی می کند و جزئیات اتصال را پس از تحویل فراهم می کند.

ایجاد حساب