Чытанне проксі-канцавой кропкі 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,
)У апрацоўшчыку HTTP/1.1 Scrapy 2.13.3 адрас бярэцца ад суразмоўцы злучэння адказу, а не ад службы знешняга IP. Некаторыя шляхі, у тым ліку адказы нулявой даўжыні, могуць пакінуць яго None. Іншыя апрацоўшчыкі могуць запоўніць яго інакш. None сам па сабе не даказвае прамога маршруту.
Для праверкі выхаду запытайце давераную канцавую кропку ў межах патрэбнай палітыкі проксі і захоўвайце ідэнтычнасць запыту разам з назіраннем. Праграмнае забеспячэнне з ратацыяй можа даць наступнай праверцы іншую канцавую кропку.
Перанакіраванні таксама ствараюць яшчэ адзін запыт. Канчатковыя метаданыя апісваюць гэтую стадыю; правярайце гісторыю перанакіраванняў і любы паўторны выбар праграмнага забеспячэння, замест таго каб лічыць іх доказам маршруту першага URL.