Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mendapatkan semula URL yang diubah hala menggunakan perpustakaan Permintaan Python?

Bagaimana untuk mendapatkan semula URL yang diubah hala menggunakan perpustakaan Permintaan Python?

Susan Sarandon
Susan Sarandonasal
2024-11-16 11:38:03358semak imbas

How to retrieve redirected URLs using the Python Requests library?

Mendapatkan semula URL Diubah Hala menggunakan Pustaka Permintaan Python

Dalam bidang pengikisan dan automasi web, selalunya menjadi perlu untuk menjejak ubah hala yang berlaku apabila mengakses halaman web. Pustaka Permintaan Python menyediakan fungsi komprehensif untuk mengurus permintaan HTTP, termasuk keupayaan untuk menavigasi ubah hala. Artikel ini bertujuan untuk menjelaskan cara mendapatkan semula URL yang diubah hala menggunakan perpustakaan Permintaan, menangani pertanyaan yang dibangkitkan dalam komuniti.

Masalah:

Dalam skrip, allow_redirects =Bendera True ditetapkan untuk mengikuti ubah hala secara automatik. Walau bagaimanapun, pengguna ingin menentukan URL akhir yang permintaan itu diubah hala. Timbul persoalan: bagaimanakah seseorang boleh mendapatkan maklumat ini secara pengaturcaraan?

Penyelesaian:

Penyelesaian terletak pada penggunaan atribut response.history yang disediakan oleh Requests. Atribut ini menyimpan senarai respons yang merangkumi keseluruhan perjalanan ubah hala yang menuju ke destinasi akhir. Untuk mengakses URL akhir, sifat response.url boleh digunakan.

Berikut ialah coretan kod yang menunjukkan proses:

response = requests.get(someurl)
if response.history:
    print("Request was redirected")
    for resp in response.history:
        print(resp.status_code, resp.url)
    print("Final destination:")
    print(response.status_code, response.url)
else:
    print("Request was not redirected")

Demo:

Pertimbangkan contoh berikut apabila permintaan dibuat ke tapak web yang dikonfigurasikan untuk melaksanakan berbilang ubah hala:

import requests
response = requests.get('http://httpbin.org/redirect/3')
for resp in response.history:
    print(resp.status_code, resp.url)
print(response.status_code, response.url)

Output:

302 http://httpbin.org/redirect/3
302 http://httpbin.org/redirect/2
302 http://httpbin.org/redirect/1
200 http://httpbin.org/get

Seperti yang terbukti daripada output, kod tersebut berjaya merekodkan kod status dan URL bagi setiap ubah hala, serta destinasi akhir.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan semula URL yang diubah hala menggunakan perpustakaan Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn