python dengan cekap mengakses API HTTP: Permintaan Perpustakaan dan Permintaan Cache
Artikel ini dikutip dari "Python Praktikal", dan pengarang Stuart menunjukkan bagaimana untuk mengakses API HTTP dengan mudah menggunakan Python dan beberapa modul pihak ketiga.Kebanyakan kes, memproses data pihak ketiga memerlukan akses kepada API HTTP, iaitu, menghantar permintaan HTTP ke laman web yang direka untuk dibaca oleh mesin dan bukan secara manual. Data API biasanya dalam format yang boleh dibaca mesin, biasanya dalam JSON atau XML. Mari lihat bagaimana untuk mengakses API HTTP menggunakan Python.
Prinsip asas menggunakan API HTTP adalah mudah:
- Hantar permintaan HTTP ke URL API, yang mungkin termasuk beberapa maklumat pengesahan (seperti kunci API) untuk membuktikan bahawa kami diberi kuasa.
- Dapatkan data.
- Gunakan data untuk menyelesaikan operasi berguna.
. Ini adalah perpustakaan HTTP untuk Python yang menjadikan data HTTP lebih mudah daripada Python's Built-In requests
. urllib.request
python -m pip install requests
Untuk menunjukkan kemudahan penggunaannya, kami akan menggunakan API Pixabay (didokumenkan di sini). Pixabay adalah laman web gambar di mana semua imej boleh digunakan semula, menjadikannya sumber yang sangat mudah. Kami akan memberi tumpuan kepada gambar buah. Kemudian apabila memanipulasi fail, kami akan menggunakan gambar buah yang dikumpulkan, tetapi sekarang kami hanya ingin mencari gambar buah.
Pertama, kita akan melihat gambar -gambar yang tersedia di Pixabay dengan cepat. Kami akan merebut seratus gambar, melayari mereka dengan cepat, dan pilih yang kami mahukan. Untuk melakukan ini, kita memerlukan kunci API Pixabay, jadi kita perlu membuat akaun dan kemudian mendapatkan kunci dari bahagian imej carian dokumen API.
Permintaan modul
Versi asas menggunakan modul
untuk membuat permintaan HTTP ke API termasuk membina URL HTTP, membuat permintaan, dan membaca respons. Di sini, responsnya dalam format JSON. Modul menjadikan setiap langkah sangat mudah. Parameter API adalah kamus python, dan fungsi requests
membuat panggilan. Oleh itu, panggilan mudah kelihatan seperti ini: requests
get()
requests
Ini akan mengembalikan objek python, dan seperti yang dicadangkan oleh dokumentasi API, kita dapat melihat pelbagai bahagiannya: .json
Untuk mendapatkan seratus hasil, kita hanya boleh membuat keputusan untuk membuat lima panggilan, masing -masing mendapat 20 hasil, tetapi ini tidak cukup kuat. Pendekatan yang lebih baik ialah gelung melalui halaman permintaan sehingga anda mendapat seratus hasil yang dikehendaki dan kemudian berhenti. Ini menghalang masalah apabila Pixabay mengubah bilangan keputusan lalai (mis. Hingga 15). Ia juga membolehkan kita mengendalikan keadaan di mana istilah carian tidak mempunyai seratus gambar. Oleh itu, kami menggunakan gelung while
, meningkatkan nombor halaman setiap kali, dan jika kami telah mencapai 100 imej, atau tidak ada imej untuk mendapatkan, kami keluar dari gelung:
CACHE HTTP Permintaan
Adalah idea yang baik untuk mengelakkan membuat permintaan yang sama kepada API HTTP beberapa kali. Banyak API mempunyai sekatan penggunaan untuk mengelakkan berlebihan oleh pemohon, dan permintaan mengambil masa dan usaha. Kita harus cuba mengelak daripada menduplikasi permintaan sebelumnya. Nasib baik, ada cara yang berguna untuk melakukan ini apabila menggunakan modul Python's requests
: Pasang python -m pip install requests-cache
menggunakan requests-cache
. Ini akan merekodkan apa -apa panggilan HTTP yang kami buat dan menyimpan hasilnya. Kemudian, kemudian jika kita membuat panggilan yang sama sekali lagi, kita mendapat hasil yang disimpan secara tempatan tanpa perlu mengakses API lagi. Ini menjimatkan masa dan jalur lebar. Untuk menggunakan requests_cache
, mengimportnya dan membuat CachedSession
dan kemudian gunakan session.get
bukan requests.get
untuk mendapatkan URL, kami akan mendapat manfaat caching tanpa usaha tambahan:
Menjana output
Untuk melihat hasil pertanyaan, kita perlu memaparkan gambar di suatu tempat. Cara yang mudah adalah untuk membuat halaman HTML yang mudah untuk memaparkan setiap imej. Pixabay menyediakan gambar kecil kecil untuk setiap imej, yang dipanggil previewURL
dalam respons API, jadi kami boleh membuat halaman HTML untuk memaparkan semua gambar kecil ini dan menghubungkannya ke halaman Pixabay utama - dari mana kita boleh memilih muat turun gambar yang kita mahu dan tandatangan jurugambar. Oleh itu, setiap imej di halaman mungkin kelihatan seperti ini:
kita boleh membinanya dari senarai images
menggunakan pemahaman senarai dan kemudian gunakan "n".join()
untuk menggabungkan semua hasil ke dalam rentetan besar:
Kemudian, jika kita menulis halaman HTML yang sangat mudah dengan senarai itu, mudah membukanya dalam pelayar web, dengan cepat melihat semua hasil carian yang kita dapat dari API dan klik mana -mana daripada mereka untuk melompat muat turun ke yang penuh Pixabay Page:
(berikut adalah FAQs, yang telah ditulis semula dan diselaraskan mengikut teks asal)
Soalan -soalan yang sering ditanya mengenai mendapatkan data dengan Python's HTTP API (FAQs)
-
Apakah perbezaan antara http dan https? HTTP adalah protokol pemindahan hiperteks, dan HTTPS adalah protokol pemindahan hiperteks yang selamat. Perbezaan utama ialah HTTPS menggunakan sijil SSL untuk mewujudkan sambungan yang disulitkan yang selamat antara pelayan dan klien, sementara HTTP tidak. Ini menjadikan HTTP lebih selamat apabila memindahkan data sensitif seperti maklumat kad kredit atau kelayakan log masuk.
-
Bagaimana HTTP berfungsi di Python? Pelbagai perpustakaan boleh digunakan dalam Python untuk mengeluarkan permintaan HTTP, yang paling biasa digunakan ialah
requests
. Perpustakaan ini membolehkan anda menghantar permintaan HTTP dan respons proses, termasuk pemprosesan kuki, membentuk data, fail pelbagai bahagian, dan banyak lagi. Ia adalah alat yang berkuasa untuk berinteraksi dengan perkhidmatan web dan boleh digunakan dalam pelbagai aplikasi. -
Apakah kaedah HTTP biasa? Bagaimana menggunakannya di Python? Kaedah HTTP yang paling biasa adalah mendapatkan, pos, meletakkan, memadam, kepala, pilihan, dan patch. Di Python, anda boleh menggunakan perpustakaan
requests
untuk menggunakan kaedah ini. Sebagai contoh, untuk menghantar permintaan GET, anda boleh menggunakanrequests.get(url)
, dan menghantar permintaan pos, anda boleh menggunakanrequests.post(url, data)
. -
Bagaimana untuk mengendalikan respons HTTP dalam Python? Apabila anda menggunakan perpustakaan
requests
untuk menghantar permintaan HTTP di Python, anda mendapat objek respons. Objek ini mengandungi respons pelayan terhadap permintaan anda. Jika respons dalam format JSON, anda boleh menggunakanresponse.text
atauresponse.json()
untuk mengakses kandungan respons. Anda juga boleh menggunakanresponse.status_code
untuk menyemak kod status respons. -
Bagaimana menggunakan tajuk HTTP di Python? Anda boleh menggunakannya dalam python dengan melewati tajuk HTTP sebagai kamus ke parameter
requests
fungsiheaders
. Sebagai contoh,. Header boleh digunakan untuk memberikan maklumat tambahan mengenai permintaan atau klien, seperti ejen pengguna, jenis kandungan, kebenaran, dan sebagainya. requests.get(url, headers={'User-Agent': 'my-app'})
-
Bagaimana menangani kuki di Python? cookies boleh diproses dalam python menggunakan atribut objek respons. Anda boleh mengakses kuki yang dihantar oleh pelayan menggunakan
cookies
dan hantar kuki ke pelayan dengan lulus mereka sebagai kamus ke parameterresponse.cookies
fungsirequests
.cookies
-
Bagaimana untuk menghantar data borang menggunakan permintaan pos di Python? 3 Sebagai contoh,
Fail boleh dihantar menggunakan permintaan pos di Python dengan meluluskannya sebagai kamus ke parameter. Perpustakaan akan mengodkan data secara automatik dalam format yang betul. requests.post
data
requests.post(url, data={'key': 'value'})
requests
Bagaimana cara menghantar fail menggunakan permintaan pos di Python? fungsi - . Kamus harus mengandungi nama medan fail sebagai kunci, dan tuple yang mengandungi nama fail dan objek fail sebagai nilai.
-
Bagaimana menangani kesilapan dan pengecualian perpustakaan
requests
di Python? Perpustakaanrequests
di Python melemparkan pengecualian untuk jenis kesilapan tertentu, seperti kesilapan rangkaian atau masa tamat. Anda boleh menggunakan cubaan/kecuali blok untuk menangkap pengecualian ini dan mengendalikannya dengan sewajarnya. Anda juga boleh menyemak kod status respons untuk mengendalikan ralat HTTP. -
Bagaimana membuat permintaan HTTP yang tidak segerak di Python? Anda boleh menggunakan perpustakaan
aiohttp
untuk mengeluarkan permintaan HTTP yang tidak disengajakan di Python. Perpustakaan ini membolehkan anda menghantar permintaan HTTP secara asynchronously dan proses respons, yang dapat meningkatkan prestasi aplikasi anda dengan ketara apabila mengendalikan sejumlah besar permintaan.
Atas ialah kandungan terperinci Mengambil data dari API HTTP dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Pythonisbothompiledandintinterpreted.whenyourunapythonscript, itisfirstompiledintobytecode, yang manaThenexecutedbythonvirtualmachine (pvm).

Python bukan pelaksanaan line-by-line, tetapi dioptimumkan dan pelaksanaan bersyarat berdasarkan mekanisme penterjemah. Jurubahasa menukarkan kod ke bytecode, dilaksanakan oleh PVM, dan mungkin pretompile ekspresi malar atau mengoptimumkan gelung. Memahami mekanisme ini membantu mengoptimumkan kod dan meningkatkan kecekapan.

Terdapat banyak kaedah untuk menyambungkan dua senarai dalam Python: 1. Pengendali menggunakan, yang mudah tetapi tidak cekap dalam senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan operator =, yang kedua -duanya cekap dan boleh dibaca; 4. Gunakan fungsi itertools.Chain, yang efisien memori tetapi memerlukan import tambahan; 5. Penggunaan senarai parsing, yang elegan tetapi mungkin terlalu kompleks. Kaedah pemilihan harus berdasarkan konteks dan keperluan kod.

Terdapat banyak cara untuk menggabungkan senarai Python: 1. Menggunakan pengendali, yang mudah tetapi tidak memori yang cekap untuk senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan itertools.chain, yang sesuai untuk set data yang besar; 4. Penggunaan * pengendali, bergabung dengan senarai kecil hingga sederhana dalam satu baris kod; 5. Gunakan numpy.concatenate, yang sesuai untuk set data dan senario yang besar dengan keperluan prestasi tinggi; 6. Gunakan kaedah tambahan, yang sesuai untuk senarai kecil tetapi tidak cekap. Apabila memilih kaedah, anda perlu mempertimbangkan saiz senarai dan senario aplikasi.

Compiledlanguagesofferspeedandsecurity, whilintpretedLanguagesprovideoeSeAfuseAndPortability.1) compiledLanguageslikec arefasterandsecureButhavelongerDevelopmentCyclesandplatformdependency.2) interpretedLanguagePyePyhonareeAseAreeAseaneAseaneSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSeaneaneAseaneaneAseaneaneAdoSioSiAdaSiAdoeSeaneAdoeSeaneAdoeSeanDoReAseanDOREPYHOREADOREB

Di Python, A untuk gelung digunakan untuk melintasi objek yang boleh dimakan, dan gelung sementara digunakan untuk melakukan operasi berulang kali apabila keadaan berpuas hati. 1) Untuk contoh gelung: melintasi senarai dan mencetak unsur -unsur. 2) Walaupun contoh gelung: Tebak permainan nombor sehingga anda rasa betul. Menguasai prinsip kitaran dan teknik pengoptimuman dapat meningkatkan kecekapan dan kebolehpercayaan kod.

Untuk menggabungkan senarai ke dalam rentetan, menggunakan kaedah Join () dalam Python adalah pilihan terbaik. 1) Gunakan kaedah Join () untuk menggabungkan elemen senarai ke dalam rentetan, seperti '' .join (my_list). 2) Untuk senarai yang mengandungi nombor, tukar peta (str, nombor) ke dalam rentetan sebelum menggabungkan. 3) Anda boleh menggunakan ekspresi penjana untuk pemformatan kompleks, seperti ','. Sertai (f '({Fruit})' forfruitinFruits). 4) Apabila memproses jenis data bercampur, gunakan peta (str, mixed_list) untuk memastikan semua elemen dapat ditukar menjadi rentetan. 5) Untuk senarai besar, gunakan '' .join (large_li

Pythonusesahybridapproach, combiningcompilationtobytecodeandinterpretation.1) codeiscompiledtopplatform-independentbytecode.2) byteCodeisinterpretedbythepythonvirtualmachine, enhancingficiencyAndortability.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
