Каб даследаваць выбраны маршрут, выкарыстоўвайце 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,
)

У апрацоўшчыку HTTP/1.1 Scrapy 2.13.3 адрас бярэцца ад суразмоўцы злучэння адказу, а не ад службы знешняга IP. Некаторыя шляхі, у тым ліку адказы нулявой даўжыні, могуць пакінуць яго None. Іншыя апрацоўшчыкі могуць запоўніць яго інакш. None сам па сабе не даказвае прамога маршруту.

Для праверкі выхаду запытайце давераную канцавую кропку ў межах патрэбнай палітыкі проксі і захоўвайце ідэнтычнасць запыту разам з назіраннем. Праграмнае забеспячэнне з ратацыяй можа даць наступнай праверцы іншую канцавую кропку.

Перанакіраванні таксама ствараюць яшчэ адзін запыт. Канчатковыя метаданыя апісваюць гэтую стадыю; правярайце гісторыю перанакіраванняў і любы паўторны выбар праграмнага забеспячэння, замест таго каб лічыць іх доказам маршруту першага URL.

Падобныя артыкулы