პროქსი სიის ჩართვა და ჩატვირთვა გაშლილ Scrapy პროექტში
ჩართეთ Scrapy პროქსი სიის რესურსი დისტრიბუციაში და ჩატვირთეთ იგი პაკეტის მდებარეობის მიხედვით, გაშლილი სამუშაო დირექტორიის ნაცვლად.
პროქსი ფაილი განვითარების კლონის გვერდით ავტომატურად არ არის crawler-ის გაშლილ პაკეტში. ორი სამუშაოა: ბაიტების დისტრიბუციაში ჩართვა და შემდეგ მათი პოვნა დაყენებულ პაკეტში.
Setuptools პროექტისთვის, რომლის Python პაკეტში არის crawl_app/resources/proxies.txt, pyproject.toml ჩანაწერს შეუძლია მისი ჩართვა:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
შეაერთეთ ეს პროექტის არსებულ პაკეტ კონფიგურაციასთან. სხვა build 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 მონაცემებისთვის გამოიყენეთ მისამართები უფასო პროქსი სიიდან middleware-ის მოსალოდნელი პროტოკოლითა და URL ფორმატით. ძიება არ არის დამოკიდებული გაშლის მიმდინარე სამუშაო დირექტორიაზე.
მესამე მხარის PROXY_LIST პარამეტრმა შეიძლება მოითხოვოს ფაილური სისტემის გზა ამ სტრიქონების ნაცვლად. როცა ამ ინტერფეისისთვის იყენებთ importlib.resources.as_file-ს, შეინარჩუნეთ მისი კონტექსტი ღიად მანამ, სანამ middleware-ს სჭირდება ამოღებული ფაილი. კონტექსტის დახურვის შემდეგ დროებითი გზის დაბრუნებამ შეიძლება რესურსი დაკარგოს.
სერტიფიკატების მქონე წარმოების სიები შეინახეთ გაშლისთვის განკუთვნილ საიდუმლო ან კონფიგურაციის საცავში. პაკეტის მონაცემები შესაფერისია გასავრცელებელი endpoint მონაცემებისთვის, და არა იმ ვარაუდისთვის, რომ კოდთან ერთად შეფუთული ყველაფერი კერძო რჩება.