Apabila cuba menghuraikan tapak web menggunakan perpustakaan permintaan Python, anda mungkin menghadapi ralat "403 Forbidden" . Ralat ini biasanya menunjukkan bahawa pelayan telah menolak permintaan anda kerana kekurangan kebenaran atau kebenaran yang betul.
Pertimbangkan kod berikut:
<code class="python">url = 'http://worldagnetwork.com/' result = requests.get(url) print(result.content.decode())</code>
Kod ini cuba mendapatkan semula dan menyahkod kandungan URL yang ditentukan. Walau bagaimanapun, ia menghasilkan output berikut:
<code class="html"><html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx</center> </body> </html></code>
Dalam kes khusus ini, masalah timbul kerana pelayan menolak permintaan GET tanpa pengepala Ejen Pengguna. Pengepala Ejen Pengguna mengenal pasti penyemak imbas atau aplikasi yang menghantar permintaan, yang membantu pelayan menentukan cara mengendalikan permintaan.
Untuk menyelesaikan isu ini, nyatakan pengepala Ejen Pengguna dengan jelas dalam permintaan permintaan anda. Berikut ialah contoh:
<code class="python">import requests url = 'http://worldagnetwork.com/' headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'} result = requests.get(url, headers=headers) print(result.content.decode())</code>
Dengan menetapkan pengepala Ejen Pengguna kepada nilai yang sesuai, anda boleh meniru penyemak imbas dengan berkesan dan berjaya mendapatkan semula kandungan tapak web, seperti yang ditunjukkan oleh output berikut:
<code class="html"><!doctype html> <!--[...]--> <!--[...]--></code>
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'403 Forbidden\' dalam Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!