Читање 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 сам по себи не доказује директно рутирање.
За проверу излаза питајте поуздану крајњу тачку према предвиђеној прокси политици и сачувајте идентитет захтева уз запажање. Ротирајући middleware може дати каснијој провери другу крајњу тачку.
Преусмеравања стварају још један захтев. Завршни метаподаци описују ту фазу; прегледајте историју преусмеравања и сваки поновни избор middleware-а уместо да то сматрате доказом руте првог URL-а.