तैनात किए गए Scrapy प्रोजेक्ट में प्रॉक्सी सूची शामिल करें और लोड करें
Scrapy प्रॉक्सी सूची संसाधन को वितरण में शामिल करें और तैनात कार्य निर्देशिका के बजाय पैकेज स्थान से लोड करें।
विकास क्लोन के पास रखी प्रॉक्सी फ़ाइल क्रॉलर के तैनात पैकेज में स्वतः मौजूद नहीं होती। दो काम हैं: बाइट्स को वितरण में शामिल करना, फिर उन्हें इंस्टॉल किए गए पैकेज में ढूँढ़ना।
crawl_app/resources/proxies.txt अपने Python पैकेज के अंदर रखने वाले Setuptools प्रोजेक्ट के लिए, pyproject.toml प्रविष्टि इसे शामिल कर सकती है:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
इसे प्रोजेक्ट की मौजूदा पैकेज कॉन्फ़िगरेशन के साथ मिलाएँ। किसी भिन्न बिल्ड बैकएंड का अपना डेटा-समावेशन इंटरफ़ेस होता है।
एंडपॉइंट स्ट्रिंग्स का उपयोग कर सकने वाले middleware के लिए, 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 प्रारूप को मान्य करें। वितरण-योग्य सार्वजनिक एंडपॉइंट डेटा के लिए, middleware के अपेक्षित प्रोटोकॉल और URL प्रारूप में मुफ़्त प्रॉक्सी सूची से पते उपयोग करें। खोज तैनाती की वर्तमान कार्य निर्देशिका पर निर्भर नहीं है।
किसी तृतीय-पक्ष PROXY_LIST सेटिंग को इन स्ट्रिंग्स के बजाय फ़ाइलसिस्टम पथ की आवश्यकता हो सकती है। उस इंटरफ़ेस के लिए importlib.resources.as_file का उपयोग करते समय, इसका संदर्भ तब तक खुला रखें जब तक middleware को निकाली गई फ़ाइल की आवश्यकता हो। संदर्भ बंद होने के बाद अस्थायी पथ लौटाने से संसाधन खो सकता है।
क्रेडेंशियल वाली उत्पादन सूचियों को तैनाती के लिए इच्छित गुप्त या कॉन्फ़िगरेशन भंडारण में रखें। पैकेज डेटा वितरण-योग्य एंडपॉइंट डेटा के लिए उपयुक्त है, यह मानने के लिए नहीं कि कोड के साथ बंडल किया गया सब कुछ निजी रहता है।