Membaca endpoint proxy dan IP koneksi Scrapy
Gunakan metadata permintaan untuk proxy yang dipilih, perlakukan response.ip_address sebagai informasi peer dari handler, dan verifikasi IP keluar di tujuan.
Saat memeriksa rute yang dipilih, gunakan Request yang terlampir pada respons yang selesai. Jaga tiga pengamatan tetap terpisah:
| Bidang | Arti |
|---|---|
response.request.meta.get('proxy') | URL proxy yang dipilih untuk permintaan ini, bila ada |
response.ip_address | Alamat yang diberikan handler unduhan, mungkin None |
| Laporan sumber dari tujuan tepercaya | Sumber publik yang diamati di sana |
Di dalam callback, hilangkan bagian URL yang membawa kredensial dari diagnostik rutin:
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,
)Pada handler HTTP/1.1 Scrapy 2.13.3 alamat berasal dari peer koneksi respons, bukan dari layanan IP keluar. Beberapa jalur, termasuk respons berpanjang nol, dapat membiarkannya None. Handler lain dapat mengisinya secara berbeda. None sendiri tidak membuktikan perutean langsung.
Untuk pemeriksaan keluar, tanyakan endpoint tepercaya di bawah kebijakan proxy yang dimaksud dan simpan identitas permintaan bersama pengamatan. Middleware berputar dapat memberi pemeriksaan berikutnya endpoint lain.
Pengalihan juga membuat permintaan lain. Metadata akhir menjelaskan tahap itu; periksa riwayat pengalihan dan setiap pemilihan ulang oleh middleware alih-alih menganggapnya bukti rute URL pertama.