Python Scrapy-இல் ப்ராக்ஸிகளை அமைப்பது மற்றும் சுழற்றுவது எப்படி
Updated:
Scrapy-இன் ஒத்திசைவற்ற Twisted என்ஜின் request.meta['proxy']-க்கு ஒதுக்கப்பட்ட http://user:pass@ip:port சரங்களைப் பாகுபடுத்தும் உள்ளமைக்கப்பட்ட HttpProxyMiddleware-ஐ (முன்னுரிமை 750-இல்) கொண்டுள்ளது. முன்னுரிமை 740-இல் 10 வரிகள் கொண்ட தனிப்பயன் Downloader Middleware-ஐ எழுதுவது, உங்கள் spider-களை வரம்பற்ற VinaProxy static IP பூலில் தானாகச் சுழல வைக்கிறது.
request.meta['proxy'] = 'http://user:pass@ip:port'- 1 IP₫40,000
- 5+ IP-கள்₫35,000
- 10+ IP-கள்₫25,000
- 20+ IP-கள்₫25,000
- 50+ IP-கள்₫25,000
- 100+ IP-கள்₫25,000
- 200+ IP-கள்₫25,000
- 500+ IP-கள்₫25,000
- 1000+ IP-கள்₫22,000
- 2000+ IP-கள்₫20,000
- 1 IP₫40,000
- 5+ IP-கள்₫35,000
- 10+ IP-கள்₫25,000
- 20+ IP-கள்₫25,000
- 50+ IP-கள்₫25,000
- 100+ IP-கள்₫25,000
- 200+ IP-கள்₫25,000
- 500+ IP-கள்₫25,000
- 1000+ IP-கள்₫22,000
- 2000+ IP-கள்₫20,000
Scrapy ப்ராக்ஸி middleware வரிசை & concurrency அமைப்புகள்
ப்ராக்ஸி URL-இலிருந்து user:pass-ஐ நீக்கி Proxy-Authorization தலைப்பை என்கோட் செய்ய HttpProxyMiddleware வரிசை எண் 750-இல் இயங்குவதால், request.meta['proxy']-ஐ அமைக்கும் எந்தவொரு தனிப்பயன் middleware-உம் குறைந்த எண்ணில் (எ.கா., 740) இயங்க வேண்டும்:
| Scrapy அமைப்பு | பரிந்துரைக்கப்பட்ட மதிப்பு | நோக்கம் |
|---|---|---|
request.meta['proxy'] | 'http://user:pass@ip:port' | குறிப்பிட்ட VinaProxy ப்ராக்ஸி வழியாக கோரிக்கையை அனுப்புகிறது |
| Middleware முன்னுரிமை | 740 (750-க்கு முன்) | HttpProxyMiddleware ஆனது user:pass தலைப்பை என்கோட் செய்வதை உறுதி செய்கிறது |
CONCURRENT_REQUESTS_PER_IP | 2 முதல் 4 வரை | HTTP 429 பிழையைத் தவிர்க்க ஒரு ப்ராக்ஸி IP-க்கான ஒரே நேர சாக்கெட்டுகளைக் கட்டுப்படுத்துகிறது |
AUTOTHROTTLE_ENABLED | True | இலக்கு லேட்டன்சியின் அடிப்படையில் கிரால் தாமதத்தை மாறும் தன்மையுடன் மாற்றியமைக்கிறது |
அதிக அளவிலான Scrapy கிரால்களுக்கான சிறந்த நடைமுறைகள்
from_crawler()-இல் உங்கள் VinaProxy ப்ராக்ஸி பட்டியலை ஏற்றி,process_request()-க்குள்request.meta['proxy'] = random.choice(self.proxies)என ஒதுக்கவும்DOWNLOAD_DELAY = 1.0-உடன்RANDOMIZE_DOWNLOAD_DELAY = True-ஐ இயக்கவும், இதனால் ஒவ்வொரு IP-க்கான கோரிக்கை இடைவெளிகளும் ரோபோடிக் முறையில் தோன்றாது- மீண்டும் முயற்சிக்கும் போது (
429அல்லது503), கோரிக்கையை மீண்டும் வரிசைப்படுத்துவதற்கு முன் உங்கள் பூலில் இருந்து வேறு ப்ராக்ஸியைத் தேர்ந்தெடுக்கவும்
படிப்படியாக
- 1
உங்கள் ப்ராக்ஸி பூலை http://user:pass@ip:port என வடிவமைக்கவும்
URL சரங்களைப் பெற உங்கள் VinaProxy பட்டியலை எங்கள் Proxy Format Converter-இல் ஒட்டவும்.
- 2
middlewares.py-இல் ஒரு ProxyPoolMiddleware-ஐ உருவாக்கவும்
request.meta['proxy'] = random.choice(self.proxies)என அமைக்கprocess_request(self, request, spider)-ஐ வரையறுக்கவும். - 3
settings.py-இல் முன்னுரிமை 740-இல் பதிவு செய்யவும்
DOWNLOADER_MIDDLEWARES-இன் கீழ்'myproject.middlewares.ProxyPoolMiddleware': 740-ஐச் சேர்த்து,CONCURRENT_REQUESTS_PER_IP = 2என அமைக்கவும். - 4
scrapy shell அல்லது scrapy crawl மூலம் சோதிக்கவும்
சுழற்சி மற்றும் அங்கீகாரத்தைச் சரிபார்க்க
https://vinaproxy.com/api/my-ip-க்கு எதிராக ஒரு சோதனைக் கோரிக்கையை இயக்கவும்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
முன்னுரிமை 800 என அமைக்கப்பட்டபோது எனது தனிப்பயன் Scrapy ப்ராக்ஸி middleware ஏன் தோல்வியடைந்தது?
Scrapy-இன் உள்ளமைக்கப்பட்ட HttpProxyMiddleware முன்னுரிமை 750-இல் இயங்குகிறது. உங்கள் middleware 800-இல் (750-க்குப் பிறகு) இயங்கினால், இன்லைன் user:pass சான்றுகள் ஒருபோதும் Proxy-Authorization தலைப்பாக மாற்றப்படாது. எப்போதும் உங்கள் middleware முன்னுரிமையை 750-க்குக் கீழ் (உதாரணமாக 740) அமைக்கவும்.
ஒவ்வொரு ப்ராக்ஸியுடனும் Scrapy நிலையான இணைப்புகளைத் திறந்து வைத்திருக்குமா?
ஆம். Twisted-இன் இணைப்பு பூல் ஒவ்வொரு ப்ராக்ஸி எண்ட்பாயிண்டிற்கும் நிலையான keep-alive இணைப்புகளைப் பராமரிக்கிறது.
பல மில்லியன் பக்கங்களைக் கொண்ட Scrapy பணிகளுக்கு VinaProxy ப்ராக்ஸிகள் வரம்பற்றவையா?
ஆம். அனைத்து Dedicated IPv4 மற்றும் Static ISP திட்டங்களும் வரம்பற்ற மாதாந்திர அலைவரிசையைக் கொண்டுள்ளன.
வரம்பற்ற static IP பூல்கள் மூலம் உங்கள் Scrapy spider-களை அளவிடவும்
7 நாடுகளில் உடனடி மொத்த Dedicated IPv4 மற்றும் Static ISP ப்ராக்ஸிகள்.
Scrapy ப்ராக்ஸிகளை வாங்கவும்