Scrapy ப்ராக்ஸி அமைப்புகளை CrawlerProcess ஸ்கிரிப்ட்டில் ஏற்றுதல்
தனித்த இயக்கி scrapy crawl போன்ற அதே பதிவிறக்க middleware-ஐப் பயன்படுத்த வேண்டியிருக்கும்போது get_project_settings()-ஐ CrawlerProcess-க்கு அனுப்பவும்.
ஸ்பைடர் scrapy crawl கீழ் எதிர்பார்க்கப்பட்ட ப்ராக்ஸியைப் பயன்படுத்தலாம், ஆனால் Python ஸ்கிரிப்ட்டால் தொடங்கப்படும்போது நேரடியாகச் செல்கிறது. ப்ராக்ஸி சேவையகத்தை மாற்றுவதற்கு முன் அந்த ஸ்கிரிப்ட் தன் அமைப்புகளை எவ்வாறு உருவாக்குகிறது என்பதைச் சரிபார்க்கவும்.
இருக்கும் Scrapy திட்டத்திற்கும் அதன் பதிவுசெய்யப்பட்ட ஸ்பைடருக்கும்:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()
catalog-ஐ திட்டத்தின் ஸ்பைடர் பெயரால் மாற்றவும். திட்டம் அதன் scrapy.cfg வழியாகவோ, இறக்குமதி செய்யக்கூடிய அமைப்புகள் தொகுதியைச் சுட்டும் சரியாக அமைக்கப்பட்ட SCRAPY_SETTINGS_MODULE வழியாகவோ கண்டறியப்பட வேண்டும்.
CrawlerProcess()-ஐ மட்டும் உருவாக்குவது, ஸ்கிரிப்ட் ஸ்பைடர் வகுப்பையும் இறக்குமதி செய்வதால் மட்டும் திட்டத்தின் அமைப்புகள் கோப்பை இறக்குமதி செய்யாது. எனவே DOWNLOADER_MIDDLEWARES மூலம் இயக்கப்பட்ட தனிப்பயன் middleware அந்த இயக்கத்தில் இல்லாமல் போகலாம்.
அமைப்புகளை ஏற்றுவது கட்டமைக்கப்பட்ட கூறுகளை வழங்குகிறது; அது ப்ராக்ஸி முகவரியை உருவாக்காது. Scrapy-வின் HTTP ப்ராக்ஸி middleware-க்கு இன்னும் அதன் வழக்கமான சூழல் ப்ராக்ஸி அல்லது வெளிப்படையான request.meta['proxy'] மதிப்பு தேவை. HTTPPROXY_ENABLED அதை முடக்கவில்லை என்பதைச் சரிபார்க்கவும். அனுமதிக்கப்பட்ட பொதுப் பக்க ஊர்வலத்திற்கு HTTP ப்ராக்ஸி பட்டியல் அந்த மெட்டாடேட்டா அல்லது சூழல் வழியாக வழங்கப்படும் HTTP ப்ராக்ஸி மதிப்புக்கான வேட்பாளர்களை வழங்குகிறது.
இயக்கியின் ஏற்றப்பட்ட அமைப்புகள் மற்றும் செயலில் உள்ள middleware-ஐ கட்டளை வரி இயக்கத்துடன் ஒப்பிடவும். அவை பொருந்தினால், தேர்ந்தெடுத்த கோரிக்கையின் ப்ராக்ஸி மெட்டாடேட்டா மற்றும் உண்மையான பரிமாற்றப் பிழையுடன் தொடரவும்.