የፕሮክሲ ዝርዝርን በተሰማራ የ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 የተወጣውን ፋይል ሲፈልግ ያህል አውዱን ክፍት ያድርጉ። አውዱ ከተዘጋ በኋላ ጊዜያዊ መንገድ መመለስ ምንጩን ሊያጣ ይችላል።
ምስክርነት የያዙ የምርት ዝርዝሮችን በተሰማራው አካባቢ በተመረጠው ምስጢር ወይም ውቅር ማከማቻ ውስጥ ያስቀምጡ። የፓኬጅ ውሂብ ለሚሰራጭ የመጨረሻ ነጥብ ውሂብ ተስማሚ ነው፣ ከኮድ ጋር የተሸጋገረ ሁሉ ሚስጥራዊ ሆኖ ይቆያል የሚል ግምት አይደለም።