Պրոքսիների ցանկի ներառումը և բեռնումը տեղակայված Scrapy նախագծում
Ներառեք Scrapy պրոքսիների ցանկի ռեսուրսը բաշխման մեջ և բեռնեք այն ըստ փաթեթի գտնվելու վայրի, այլ ոչ թե տեղակայված աշխատանքային պանակի։
Մշակման կլոնի կողքին գտնվող պրոքսի ֆայլը ավտոմատ կերպով ներկա չէ crawler-ի տեղակայված փաթեթում։ Երկու աշխատանք կա՝ ներառել բայթերը բաշխման մեջ, ապա գտնել դրանք տեղադրված փաթեթում։
Setuptools նախագծի համար, որի Python փաթեթում կա crawl_app/resources/proxies.txt, pyproject.toml-ի գրառումը կարող է ներառել այն՝
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Միավորեք այն նախագծի գոյություն ունեցող փաթեթի կազմաձևման հետ։ Այլ build backend ունի տվյալների ներառման իր ինտերֆեյսը։
Endpoint տողեր սպառել կարող 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 ձևաչափը։ Բաշխվող հանրային endpoint տվյալների համար օգտագործեք հասցեներ անվճար պրոքսիների ցանկից middleware-ի սպասվող արձանագրությամբ և URL ձևաչափով։ Որոնումը կախված չէ տեղակայման ընթացիկ աշխատանքային պանակից։
Երրորդ կողմի PROXY_LIST կարգավորումը կարող է պահանջել ֆայլային համակարգի ուղի այս տողերի փոխարեն։ Այդ ինտերֆեյսի համար importlib.resources.as_file օգտագործելիս բաց պահեք դրա կոնտեքստը այնքան ժամանակ, քանի դեռ middleware-ին անհրաժեշտ է արտահանված ֆայլը։ Կոնտեքստը փակելուց հետո ժամանակավոր ուղի վերադարձնելը կարող է կորցնել ռեսուրսը։
Հավատարմագրերով արտադրական ցանկերը պահեք տեղակայման համար նախատեսված գաղտնի կամ կազմաձևման պահոցում։ Փաթեթի տվյալները հարմար են բաշխվող endpoint տվյալների համար, ոչ այն ենթադրության, թե կոդի հետ փաթեթավորված ամեն ինչ մնում է գաղտնի։