വിന്യസിച്ച Scrapy പ്രോജക്ടിൽ പ്രോക്സി ലിസ്റ്റ് ഉൾപ്പെടുത്തി ലോഡ് ചെയ്യുക
Scrapy പ്രോക്സി ലിസ്റ്റ് റിസോഴ്സ് വിതരണത്തിൽ ഉൾപ്പെടുത്തി, വിന്യസിച്ച പ്രവർത്തന ഡയറക്ടറിക്ക് പകരം പാക്കേജ് സ്ഥാനം അനുസരിച്ച് ലോഡ് ചെയ്യുക.
ഡെവലപ്മെന്റ് ക്ലോണിന് അരികിലുള്ള പ്രോക്സി ഫയൽ ക്രോളറിന്റെ വിന്യസിച്ച പാക്കേജിൽ സ്വയമേവ ഉണ്ടാകില്ല. രണ്ട് ജോലികളുണ്ട്: ബൈറ്റുകൾ വിതരണത്തിൽ ഉൾപ്പെടുത്തുക, തുടർന്ന് ഇൻസ്റ്റാൾ ചെയ്ത പാക്കേജിൽ അവ കണ്ടെത്തുക.
Python പാക്കേജിനുള്ളിൽ crawl_app/resources/proxies.txt ഉള്ള Setuptools പ്രോജക്ടിന്, 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 ഡാറ്റയ്ക്ക് അനുയോജ്യമാണ്, കോഡിനൊപ്പം ബണ്ടിൽ ചെയ്തതെല്ലാം സ്വകാര്യമായി തുടരുമെന്ന അനുമാനത്തിനല്ല.