வரிசைப்படுத்தப்பட்ட Scrapy திட்டத்தில் ப்ராக்ஸி பட்டியலைச் சேர்த்து ஏற்றுதல்
Scrapy ப்ராக்ஸி பட்டியல் ஆதாரத்தை விநியோகத்தில் சேர்த்து, வரிசைப்படுத்தப்பட்ட பணி அடைவுக்குப் பதிலாக தொகுப்பு இருப்பிடத்தால் ஏற்றவும்.
உருவாக்கக் குளோனுக்கு அருகில் உள்ள ப்ராக்ஸி கோப்பு, ஊர்வலத்தின் வரிசைப்படுத்தப்பட்ட தொகுப்பில் தானாக இருக்காது. இரண்டு வேலைகள் உள்ளன: பைட்டுகளை விநியோகத்தில் சேர்ப்பது, பின்னர் நிறுவப்பட்ட தொகுப்பில் அவற்றைக் கண்டறிவது.
தனது Python தொகுப்புக்குள் crawl_app/resources/proxies.txt கொண்ட Setuptools திட்டத்திற்கு, pyproject.toml உள்ளீடு அதைச் சேர்க்கலாம்:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
இதைத் திட்டத்தின் தற்போதைய தொகுப்பு உள்ளமைவுடன் இணைக்கவும். வேறு கட்டுமான பின்தளத்திற்கு அதன் சொந்த தரவுச் சேர்க்கை இடைமுகம் உள்ளது.
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 தரவுக்கு ஏற்றது, குறியீட்டுடன் தொகுக்கப்பட்ட அனைத்தும் தனிப்பட்டதாகவே இருக்கும் என்பது அனுமானம் அல்ல.