Royn Scrapy GET aftur gjøgnum annan proxy
Brúka afturroyningarhjálpara Scrapy til at skráseta eina nýggja beiðni við nýggjum proxy, meðan tú varðveitir afturroyningarbúdsettina.
At broyta response.request.meta broytir eitt Python-objekt. Fyri at gera eina aðra niðurhal, má tú geva Scrapy eina aðra Request at skráseta.
Fyri eina GET, sum títt callback avgerðir at royna aftur, kann almenni afturroyningarhjálparin hjá Scrapy halda afturroyningarrokningini við tí nýggju beiðnini:
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
Hetta er ein spider-hjálpari. Kallarin skal lata aftur ella yielda tað úrslitandi Request, tá eitt er tøkt. None merkir, at hjálparin avspeglaði eina aðra afturroyning innan fyri galdandi markið.
Afturroyningarhjálparin kopierar beiðnina, dagførir afturroyningartalið og veitir tí skrásetarabyrði, sum hóvar fyri eina afturroyning. At yielda sama URL sum eina vanliga nýggja beiðni kann heldur møta dupul-filtrering.
Brúka eitt proxy-URL, sum tann virkna HttpProxyMiddleware stuðlar. Fyri afturroyningar av loyvdum almennum GET-beiðnum kann ein óautentiseraður HTTP-kandidatur úr HTTP-proxy-listanum veita proxy_url. At rudda eitt fyrr viðheft proxy-authorization-felt forðar fyri at flyta eitt header frá einum gomlum millummanni inn í hendan valið; lat middleware útleiða tann nýggja kontuna úr tí nýggja proxy-URL-inum, tá tað er viðkomandi.
Halt hendan valið á callback-stigi býtt frá sjálvvirkandi viðgerð RetryMiddleware av sínum stillutum brestum. Avgerð, hvørja løg hevur afturroyningina, so at stigurin ikki nýtir tvær óheftar búdsettir. Dømið viðger endurtakandi GET-arbeiði, ikki eitt lyfti um, at endurtøka av einari vilkárligari sendari transaktión er trygg.