Bagaimana untuk meminta sumber rangkaian menggunakan Python

WBOY
Lepaskan: 2023-04-13 12:22:05
ke hadapan
1866 orang telah melayarinya

Bagaimana untuk meminta sumber rangkaian menggunakan Python

Kami telah lama berkongsi pengetahuan berkaitan sistem Linux, jadi sesetengah rakan mungkin tersalah anggap bahawa kami hanya berkongsi perkara yang berkaitan dengan operasi Linux Sebenarnya, ini tidak berlaku . Kami berkembang dalam kehidupan seharian Beberapa masalah yang dihadapi semasa proses, yang saya rasa boleh diringkaskan, boleh dikongsi.

Baru-baru ini saya sedang menulis program untuk kerap mengakses sumber rangkaian, yang melibatkan penggunaan python untuk mengakses rangkaian, jadi kami akan membuat ringkasan ringkas mengenai perkara ini hari ini.

Gunakan python untuk mengakses sumber rangkaian

Untuk mengakses sumber pada rangkaian, sesetengah rakan boleh menggunakan urllib.request, yang juga merupakan perpustakaan standard python. Walau bagaimanapun, kami menggunakan permintaan, yang merupakan pembungkus urllib.request dan lebih mudah digunakan. Jika ini adalah kali pertama anda menggunakannya, anda perlu memasang permintaan Kami menggunakan pip untuk memasang:

pip install --user requests
Salin selepas log masuk

Selepas pemasangan berjaya, anda boleh menggunakannya secara langsung, anda perlu memperkenalkannya di atas fail python:

import requestsimport requests
Salin selepas log masuk

Untuk kemudahan demonstrasi, kami menggunakan modul permintaan untuk mengakses projek python dengan bintang tertinggi di github Alamatnya ialah:

​https://www.php.cn/link /62d90d223cf3e2239113a4963b191d71​

Untuk mendapatkan pemahaman yang menyeluruh, anda boleh menggunakan penyemak imbas untuk membuka alamat ini dan lihat kandungan di dalamnya. Ia adalah teks yang dipaparkan dalam format json.

Kemudian kami mencipta fail baharu ​​test-resp.py​​ dan masukkan kod berikut:

import requests
url='​​https://www.php.cn/link/62d90d223cf3e2239113a4963b191d71​​';
get_resp=requests.get(url);
Salin selepas log masuk

Baris pertama dalam kod di atas memperkenalkan requests. modul, baris 2 menyimpan alamat untuk diakses dalam pembolehubah url, baris 3 menggunakan kaedah get modul permintaan untuk mengakses url, dan menyimpan respons dalam pembolehubah get_resp. Respons ialah objek yang mengandungi kandungan dan status sumber yang diminta. Anda boleh mencetak status respons ini menggunakan objek status_code, seperti yang ditunjukkan dalam kod berikut:

print(get_resp.status_code)
Salin selepas log masuk

Hasilnya adalah seperti berikut:

$ python ​​test-resp.py​​
200
Salin selepas log masuk

Sudah tentu, anda juga boleh cetak teks respons, iaitu cetak teks get_resp, tetapi teks ini tidak diformat dan tidak mudah dibaca, seperti yang ditunjukkan dalam rajah di bawah:

Kami hanya memintas sebahagian daripada hasilnya dalam. angka di atas kerana terlalu panjang... Keputusan ini lebih menyusahkan untuk dihuraikan, tetapi Jangan risau sama sekali Lihat sahaja kandungannya dan kita dapat perhatikan kandungannya dalam format json, jadi hasil tindak balasnya juga a json, dan fungsi penghuraian json python sangat berkuasa Kita boleh mencetak json ini seperti berikut Nilai utama:

print(get_resp.json().keys())
Salin selepas log masuk

Hasilnya adalah seperti berikut:

$ python ​​test-resp.py​​
dict_keys(['total_count', 'incomplete_results', 'items'])
Salin selepas log masuk

Seperti yang boleh. dilihat daripada keputusan di atas, kita boleh merawat sepenuhnya hasil respons ini sebagai objek json. Sebagai contoh, total_count nilai keyi pertama dalam keputusan di atas mewakili jumlah bilangan gudang ular sawa Kita boleh mencetak nilai ini seperti berikut:

response_dict=get_resp.json();
print("Total repositories:", response_dict['total_count'])
Salin selepas log masuk

Keputusan yang dijalankan adalah seperti berikut:

$ python ​​test-resp.py​​
Total repositories: 9128125
Salin selepas log masuk

Jika sumber rangkaian yang dibaca adalah dalam format html biasa, anda boleh menggunakan pustaka pihak ketiga BeautifulSoup, yang boleh menyelesaikan penghuraian html dengan sempurna. Kami juga telah memperkenalkan BeautifulSoup dalam artikel sebelumnya Anda boleh merujuk kepada: Menggunakan perpustakaan Beautiful Soup Python untuk menganalisis halaman web

Tambah maklumat pengepala permintaan

Sesetengah sumber rangkaian mungkin bertindak balas terhadap permintaan Terdapat sekatan, seperti menghalang robot (program) daripada mengakses, atau memerlukan log masuk (dengan sesi pengguna) untuk mengakses Untuk tujuan ini, anda boleh menambah pengepala permintaan pada permintaan, mensimulasikan pelayar dalam pengepala permintaan, menambah maklumat sesi pengguna (token. ), dll. Seperti yang ditunjukkan di bawah:

headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
'Authorization':'41d15146-c3f3-4c0b-b48b-b5210151a9df'
}
get_resp=requests.get(url,headers=headers,params=None)
Salin selepas log masuk

Dalam kod di atas, Agen Pengguna dalam objek pengepala ialah maklumat penyemak imbas yang disimulasikan dan Kebenaran ialah token permintaan. Anda juga boleh menambah maklumat pengepala permintaan lain seperti yang diperlukan, seperti yang ditunjukkan di bawah:

header={
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'zh-CN,zh;q=0.8',
'Connection': 'keep-alive',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235'
}
Salin selepas log masuk

Lain-lain

Contoh yang kami gunakan di atas adalah semua memproses permintaan mendapatkan dan perkara yang sama berlaku untuk permintaan siaran. Gunakan kaedah pos permintaan seperti berikut:

post_resp=requests.post(url,headers=headers,data=None,json=None)
Salin selepas log masuk

Kaedah penggunaan adalah sama seperti permintaan dapatkan.

Di atas adalah semua kandungan yang kami kongsikan kali ini, selamat berbincang.

Atas ialah kandungan terperinci Bagaimana untuk meminta sumber rangkaian menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!