Scrapy proksi oxirgi nuqtasi va ulanish IP manzilini o'qish
Tanlangan proksi uchun so'rov metama'lumotlaridan foydalaning, response.ip_address ni ishlov beruvchi taqdim etgan peer ma'lumoti deb qabul qiling va manzilda chiqish IP sini tekshiring.
Tanlangan marshrutni ko'zdan kechirishda tugallangan javobga bog'langan Request dan foydalaning. Uchta kuzatuvni alohida saqlang:
| Maydon | Ma'nosi |
|---|---|
response.request.meta.get('proxy') | Ushbu so'rovning tanlangan proksi URL manzili, mavjud bo'lsa |
response.ip_address | Yuklab olish ishlov beruvchisi bergan manzil, None bo'lishi mumkin |
| Ishonchli manzildan manba hisoboti | U yerda kuzatilgan ommaviy manba |
Callback ichida hisob ma'lumotlarini olib yuruvchi URL qismlarini odatdagi diagnostikadan chiqarib tashlang:
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 ning HTTP/1.1 ishlov beruvchisida manzil javob ulanishining peeridan keladi, chiqish IP xizmatidan emas. Ba'zi yo'llar, jumladan nol uzunlikdagi javoblar, uni None qoldirishi mumkin. Boshqa ishlov beruvchilar uni boshqacha to'ldirishi mumkin. None o'zi to'g'ridan-to'g'ri marshrutlashni isbotlamaydi.
Chiqishni tekshirish uchun ko'zda tutilgan proksi siyosati doirasida ishonchli oxirgi nuqtadan so'rang va so'rov identifikatorini kuzatuv bilan birga saqlang. Aylanuvchi middleware keyingi tekshiruvga boshqa oxirgi nuqta berishi mumkin.
Qayta yo'naltirishlar ham yana bir so'rov yaratadi. Yakuniy metama'lumotlar o'sha bosqichni tavsiflaydi; birinchi URL marshrutining isboti deb hisoblash o'rniga qayta yo'naltirish tarixini va middleware tomonidan har qanday qayta tanlashni ko'rib chiqing.