Ipprova mill-ġdid GET ta' Scrapy permezz ta' proxy ieħor
Uża l-għajnuna ta' provatura mill-ġdid ta' Scrapy biex tippjana talba ġdida b'proxy ġdid filwaqt li tħares il-baġit tal-provi mill-ġdid.
Bidla f'response.request.meta tbiddel oġġett Python. Biex tagħmel download ieħor, trid tagħti lil Scrapy Request ieħor biex jiġi ppjanat.
Għal GET li l-callback tiegħek jiddeċiedi b'mod espliċitu li jerġa' jipprova, l-għajnuna pubblika ta' provatura mill-ġdid ta' Scrapy tista' żżomm il-kont tal-provi mill-ġdid mat-talba l-ġdida:
from scrapy.downloadermiddlewares.retry import get_retry_request
def retry_through(self, response, proxy_url):
retry = get_retry_request(
response.request,
spider=self,
reason='choose_another_proxy',
)
if retry is None:
return None
retry.meta['proxy'] = proxy_url
retry.headers.pop('Proxy-Authorization', None)
return retry
Din hija għajnuna għall-spider. Min isejjaħ irid jirritorna jew jagħmel yield tar-Request li tirriżulta meta tkun disponibbli. None ifisser li l-għajnuna rrifjutat provatura mill-ġdid oħra fil-limitu applikabbli.
L-għajnuna ta' provatura mill-ġdid tikkopja t-talba, taġġorna l-għadd tal-provi mill-ġdid tagħha u tipprovdi l-imġiba tal-iskedar xierqa għal provatura mill-ġdid. Li sempliċement tagħmel yield tal-istess URL bħala talba ġdida ordinarja tista' minflok tiltaqa' ma' filtrazzjoni ta' duplikati.
Uża URL ta' proxy appoġġjat mill-HttpProxyMiddleware attivat. Għal provi mill-ġdid ta' talbiet GET pubbliċi permessi, kandidat HTTP mhux awtentikat mil-lista tal-proxy HTTP jista' jipprovdi proxy_url. It-tindif ta' qasam proxy-authorization imwaħħal qabel jevita li testata ta' intermedjarju antik tinġarr f'din l-għażla; ħalli l-middleware jiddeduċi l-kont il-ġdid mill-URL tal-proxy l-ġdid meta japplika.
Żomm din l-għażla fil-livell tal-callback separata mill-immaniġġjar awtomatiku ta' RetryMiddleware tal-fallimenti kkonfigurati tiegħu. Iddeċiedi liema saff jippossjedi l-prova mill-ġdid biex l-operazzjoni ma tikkonsmax żewġ baġits indipendenti. L-eżempju jikkonċerna xogħol GET li jista' jerġa' jintlagħab, mhux wegħda li t-treġġigħ lura ta' transazzjoni sottomessa arbitrarjament hija sikura.