Ολοκληρώσεις · Ενδιάμεσο επίπεδο

Περιστρεφόμενοι και κολλώδεις διακομιστές proxy στο Σκράπι με ενδιάμεσο λογισμικό λήψης

Το υποστηρίζει πιστοποιημένους διακομιστές proxy μέσω Διαμορφώστε την πραγματική παραδοθείσα πύλη, μεταδώστε τη ρύθμιση σε αιτήματα παρακολούθησης και επαληθεύστε την εκχωρημένη λειτουργία συνεδρίας πριν αυξήσετε τον συγχρονισμό.

2 λεπτά ανάγνωση 4 τμήματα Αναθεώρηση Η συντακτική ομάδα Proxy Cyber

Η απλούστερη έκδοση#

Κατηγοριοποιήστε την απόκριση πριν προσπαθήσετε ξανά. Ένα σφάλμα 403 μπορεί να υποδεικνύει έναν κανόνα πρόσβασης που δεν θα επιλύσει μια άλλη διεύθυνση IP Για το σφάλμα του 429, σεβαστείτε τη δυνατότητα και μειώστε τον ρυθμό αίτησης. Χρησιμοποιήστε περιορισμένη αναμονή για προσωρινές συνδέσεις ή αποτυχίες διακομιστή. Δοκιμάστε ξανά τις λειτουργίες αλλαγής κατάστασης μόνο όταν μπορείτε να αποφύγετε διπλότυπες ενέργειες.

Αράχνη.
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 Ο χρήστης μπορεί να επιλέξει ένα από τα δύο παρακάτω:

Κρατώντας το λογαριασμό χαμηλά#

  • Το Scrapy δεν φορτώνει εικόνες ή σενάρια, μόνο HTML και JSON, έτσι μια σελίδα κοστίζει το μέγεθός της.
  • Ενεργοποίηση συμπίεσης (προεπιλογή) και αποφυγή Splash ή απόδοση προγράμματος περιήγησης εκτός αν τα δεδομένα το χρειάζονται.
  • Κρύψτε με HTTPCACHE_ENABLED = True κατά τη διάρκεια της ανάπτυξης, έτσι ώστε να μην πληρώνουν για να ξαναπάρει τις ίδιες σελίδες κατά την αποσφαλμάτωση των επιλογέων.

Ευγένεια ανά τομέα#

Μια δεξαμενή διευθύνσεων IP είναι ένας τρόπος για να είναι πολλοί ευγενικοί επισκέπτες, όχι ένα αγενές. CONCURRENT_REQUESTS_PER_DOMAIN και κρατούν κάθε στόχο σε ένα ανθρώπινος-ευχάριστο ποσοστό ανά έξοδο ο Πολιτική αποδεκτής χρήσης απαγορεύει οτιδήποτε μοιάζει με επίθεση.

Ερωτήσεις που κάνουν οι χρήστες#

Χρειάζομαι γραφικά-περιστρεφόμενα-διαμεσολαβητές;

Not with a gateway: rotation happens on the Proxy Cyber side for every new connection. That package manages lists of static proxies; with res.proxy-cyber.com there is one proxy to configure.

Πώς μπορώ να χρησιμοποιήσω διαφορετική χώρα ανά αίτημα;

Ορίστε το στην αράχνη και διαβάστε το στο μεσαίο λογισμικό για να δημιουργήσετε την παράμετρο -το παράδειγμα χρησιμοποιεί μια ενιαία ρύθμιση για τη συντομία.

Ο λογαριασμός σας

Διαχειριστείτε όλα τα proxy σας από έναν λογαριασμό

Συγκρίνετε δίκτυα, κάντε παραγγελίες και παρακολουθήστε το υπόλοιπό σας και τα αιτήματα υποστήριξης από ένα Η ομάδα μας ελέγχει τις πληρωμές και παρέχει στοιχεία σύνδεσης μετά την παράδοση.

Δημιουργία λογαριασμού