Python Scrapy හි ප්රොක්සි සකසන සහ රෝටේට් කරන ආකාරය
Updated:
Scrapy හි අසමමුහුර්ත Twisted එන්ජිම තුළ request.meta['proxy'] වෙත ලබා දෙන http://user:pass@ip:port ස්ට්රිං විශ්ලේෂණය කරන පූර්ව-නිර්මිත HttpProxyMiddleware (ප්රමුඛතාව 750 හි) ඇතුළත් වේ. ප්රමුඛතාව 740 හි පේළි 10 කින් යුත් අභිරුචි Downloader Middleware එකක් ලිවීමෙන් ඔබගේ spider වලට සීමාවිරහිත VinaProxy ස්ථාවර IP සංචිතයක් හරහා ස්වයංක්රීයව රෝටේට් වීමට ඉඩ සලසයි.
request.meta['proxy'] = 'http://user:pass@ip:port'- IP 1₫40,000
- IP 5+₫35,000
- IP 10+₫25,000
- IP 20+₫25,000
- IP 50+₫25,000
- IP 100+₫25,000
- IP 200+₫25,000
- IP 500+₫25,000
- IP 1000+₫22,000
- IP 2000+₫20,000
- IP 1₫40,000
- IP 5+₫35,000
- IP 10+₫25,000
- IP 20+₫25,000
- IP 50+₫25,000
- IP 100+₫25,000
- IP 200+₫25,000
- IP 500+₫25,000
- IP 1000+₫22,000
- IP 2000+₫20,000
Scrapy ප්රොක්සි middleware අනුපිළිවෙල සහ සමගාමීත්ව සැකසුම්
ප්රොක්සි 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 | ඉලක්කගත ප්රමාදය මත පදනම්ව crawl ප්රමාදය ගතිකව සීරුමාරු කරයි |
විශාල පරිමාණයේ Scrapy crawl සඳහා හොඳම භාවිතයන්
- ඔබගේ VinaProxy ප්රොක්සි ලැයිස්තුව
from_crawler()තුළ පූරණය කර,process_request()තුළrequest.meta['proxy'] = random.choice(self.proxies)ලබා දෙන්න - IP එකකට ලැබෙන ඉල්ලීම් අතර කාල පරතරය රොබෝවෙකුගේ මෙන් නොපෙනෙන පිණිස
DOWNLOAD_DELAY = 1.0සමඟRANDOMIZE_DOWNLOAD_DELAY = Trueසක්රීය කරන්න - නැවත උත්සාහ කිරීමේදී (
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වෙත පරීක්ෂණ ඉල්ලීමක් ධාවනය කරන්න.
නිතර අසන ප්රශ්න
මගේ අභිරුචි Scrapy ප්රොක්සි middleware එක ප්රමුඛතාව 800 ලෙස සැකසූ විට අසාර්ථක වූයේ ඇයි?
Scrapy හි පූර්ව-නිර්මිත HttpProxyMiddleware ප්රමුඛතාව 750 හි ධාවනය වේ. ඔබගේ middleware එක 800 හි (750 ට පසුව) ධාවනය වන්නේ නම්, ඇතුළත් කර ඇති user:pass අක්තපත්ර කිසි විටෙකත් Proxy-Authorization ශීර්ෂකයක් බවට පරිවර්තනය නොවේ. සෑම විටම ඔබගේ middleware ප්රමුඛතාව 750 ට වඩා අඩුවෙන් (740 වැනි) සකසන්න.
Scrapy සෑම ප්රොක්සියක් වෙතම අඛණ්ඩ සම්බන්ධතා විවෘතව තබා ගනීද?
ඔව්. Twisted හි සම්බන්ධතා සංචිතය එක් එක් ප්රොක්සි අන්ත ලක්ෂ්යය සඳහා ස්ථාවර keep-alive සම්බන්ධතා පවත්වා ගනී.
පිටු මිලියන ගණනක Scrapy කාර්යයන් සඳහා VinaProxy ප්රොක්සි සීමාවිරහිතද?
ඔව්. සියලුම Dedicated IPv4 සහ Static ISP සැලසුම් සඳහා අසීමිත මාසික කලාප පළලක් ඇතුළත් වේ.
සීමාවිරහිත ස්ථාවර IP සංචිත සමඟ ඔබගේ Scrapy spider පරිමාණය කරන්න
රටවල් 7 ක් පුරා ක්ෂණික තොග Dedicated IPv4 සහ Static ISP ප්රොක්සි.
Scrapy ප්රොක්සි මිලදී ගන්න