Hợp nhất · can thiệp

Xâm nhập và giấy proxy dính trong Sổ tay với một phần mềm vừa tải về

HtpProxyMiddleware của Htry hỗ trợ xác thực quyền HTTP qua yêu cầu.eta[ ppoxy]. Cấu hình cửa ra đã được giải cứu, phát hành thiết lập để theo yêu cầu và kiểm tra lại chế độ phiên chạy đã chỉ định trước khi tăng sự đồng thuận.

2 phút đọc Phần 4 Đã xem xét Ban biên tập Proxy Cyber

Phiên bản đơn giản#

Phân loại câu trả lời trước khi thử lại. Một chương trình 403 có thể ngụ ý một quy tắc truy cập khác sẽ không giải quyết. Đối với 429, tôn trọng rery- Sau và giảm tốc độ yêu cầu; sử dụng bị hạn chế để kết nối tạm thời hay máy phục vụ thất bại. Hãy thử lại chỉ khi bạn có khả năng ngăn chặn hành động lặp lại.

Con nhện.
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()}

Một phần mềm giữa cho các phiên chạy dính trên mỗi mục#

Đồ ăn trung gian.
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}"
thiết lập.py
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

Dùng lại thông tin kết nối và địa chỉ IP là điều khiển khác nhau. Một phiên chạy khách sử dụng lại ổ cắm; chỉ cửa đã gán quyết định độ xoay và cách gọi dính. Dùng tham số phiên chạy được cung cấp bằng dịch vụ của bạn, và kiểm tra lối thoát qua vài yêu cầu. Đóng ổ cắm hoặc gửi: đóng kết nối không bảo đảm một IP khác.

Giữ cho dự luật bị giảm#

  • Sổ tay không tải ảnh hay tập lệnh; chỉ HTML và JSON, vì vậy một trang có giá trị kích cỡ HTML của nó.
  • Bật nén (mặc định) và tránh Splash hoặc vẽ trình duyệt trừ khi dữ liệu cần thiết.
  • Có bộ nhớ tạm HTTPCACHE_ENABLED = True Trong quá trình phát triển, bạn không trả tiền để xem lại cùng một trang trong khi gỡ lỗi các bộ chọn.

Cư xử lịch sự#

Hồ bơi là một cách để khách lịch sự, chứ không phải một người thiếu lịch sự. CONCURRENT_REQUESTS_PER_DOMAIN và Auto Throttle giữ mỗi mục tiêu tại một tỷ lệ có thể thay thế con người mỗi lối thoát; Chính sách sử dụng được chấp nhận cấm bất cứ thứ gì trông giống như một cuộc tấn công.

Người ta thắc mắc#

Tôi có cần thuốc kích thích không?

Không phải với cổng ra: xoay xảy ra ở mặt proxy phím cho mỗi kết nối mới. Gói đó quản lý danh sách các proxy tĩnh; với res.key-poxy.com có một proxy cần cấu hình.

Làm sao tôi có thể sử dụng một đất nước khác cho mỗi yêu cầu?

Đặt yêu cầu.meta["nước"] trong nhện và đọc nó trong phần mềm giữa để xây dựng tham số -c-c tham số; ví dụ sử dụng một thiết lập đơn cho ngắn gọn.

Tài khoản của bạn

Quản lý giấy proxy của bạn trong một tài khoản

So sánh các mạng lưới, thứ tự đặt và làm theo yêu cầu và hỗ trợ của bạn từ một bảng điều khiển.

Tạo tài khoản