Ένα αρχείο διακομιστών μεσολάβησης δίπλα σε ένα αντίγραφο ανάπτυξης δεν υπάρχει αυτόματα στο αναπτυγμένο πακέτο του crawler. Υπάρχουν δύο εργασίες: συμπερίληψη των bytes στη διανομή και, στη συνέχεια, εύρεσή τους στο εγκατεστημένο πακέτο.

Για ένα έργο Setuptools με crawl_app/resources/proxies.txt μέσα στο πακέτο Python του, μια καταχώριση στο pyproject.toml μπορεί να το συμπεριλάβει:

[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]

Συγχωνεύστε το με την υπάρχουσα διαμόρφωση πακέτου του έργου. Ένα διαφορετικό backend κατασκευής έχει τη δική του διεπαφή συμπερίληψης δεδομένων.

Για middleware που μπορεί να καταναλώνει συμβολοσειρές endpoint, η Python 3.11+ μπορεί να διαβάσει απευθείας τον πόρο του πακέτου:

from importlib.resources import files

text = files('crawl_app').joinpath('resources', 'proxies.txt').read_text(
    encoding='utf-8'
)
proxy_urls = [line.strip() for line in text.splitlines() if line.strip()]

Χρησιμοποιήστε το πραγματικό όνομα του πακέτου και επικυρώστε την αναμενόμενη μορφή URL στον αναγνώστη. Για διανεμόμενα δημόσια δεδομένα endpoint, χρησιμοποιήστε διευθύνσεις από τη δωρεάν λίστα διακομιστών μεσολάβησης στο πρωτόκολλο και τη μορφή URL που αναμένει το middleware. Η αναζήτηση δεν εξαρτάται από τον τρέχοντα κατάλογο εργασίας της ανάπτυξης.

Μια ρύθμιση PROXY_LIST τρίτου μέρους μπορεί να απαιτεί διαδρομή συστήματος αρχείων αντί για αυτές τις συμβολοσειρές. Όταν χρησιμοποιείτε το importlib.resources.as_file για αυτή τη διεπαφή, κρατήστε το περιβάλλον του ανοιχτό όσο το middleware χρειάζεται το εξαγόμενο αρχείο. Η επιστροφή προσωρινής διαδρομής μετά το κλείσιμο του περιβάλλοντος μπορεί να χάσει τον πόρο.

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

Σχετικά άρθρα