Scrapy-ի պրոքսի վերջնակետի և կապի IP-ի ընթերցում
Օգտագործեք հարցման մետատվյալները ընտրված պրոքսի համար, response.ip_address-ը դիտարկեք որպես մշակիչի տրամադրած զուգընկերոջ տեղեկություն և ստուգեք ելքի IP-ն նշանակակետում։
Ընտրված ուղին ուսումնասիրելիս օգտագործեք ավարտված պատասխանին կցված Request-ը։ Երեք դիտարկումները առանձին պահեք՝
| Դաշտ | Իմաստ |
|---|---|
response.request.meta.get('proxy') | Այս հարցման ընտրված պրոքսի URL-ը, եթե առկա է |
response.ip_address | Ներբեռնման մշակիչի տրամադրած հասցեն, հնարավոր է None |
| Վստահելի նշանակակետի աղբյուրի հաշվետվություն | Այնտեղ դիտված հանրային աղբյուրը |
Callback-ի ներսում հանեք հավատարմագրեր կրող URL մասերը սովորական ախտորոշումից՝
from urllib.parse import urlsplit
proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
'target_host=%s proxy_host=%s peer_ip=%s',
urlsplit(response.url).hostname, proxy_host, response.ip_address,
)Scrapy 2.13.3-ի HTTP/1.1 մշակիչում հասցեն գալիս է պատասխանի կապի զուգընկերոջից, ոչ թե ելքի IP ծառայությունից։ Որոշ ուղիներ, ներառյալ զրո երկարության պատասխանները, կարող են այն թողնել None։ Այլ մշակիչներ կարող են այն լրացնել այլ կերպ։ None-ը ինքնին չի ապացուցում ուղիղ երթուղավորում։
Ելքի ստուգման համար հարցրեք վստահելի վերջնակետին նախատեսված պրոքսի քաղաքականության ներքո և պահեք հարցման ինքնությունը դիտարկման հետ։ Պտտվող միջնածրագրերը կարող են հետագա ստուգմանը տալ այլ վերջնակետ։
Վերահղումները նույնպես ստեղծում են ևս մեկ հարցում։ Վերջնական մետատվյալները նկարագրում են այդ փուլը․ ստուգեք վերահղումների պատմությունը և միջնածրագրերի ցանկացած նոր ընտրություն՝ փոխարենը այն առաջին URL-ի ուղու ապացույց համարելու։