Pengenalan kepada API eBay dengan Python API Penemuan - Bahagian 2
- 3961
- 1130
- Wendell Shields
Dalam artikel sebelumnya, kami melihat bagaimana untuk melaksanakan langkah -langkah awal untuk menyediakan persekitaran kerja kami, mewujudkan pemaju eBay dan akaun kotak pasir dan menghasilkan kunci dan kelayakan yang diperlukan untuk melaksanakan panggilan API. Dalam bab baru ini, kami akan membuat permintaan pertama kami dan melaksanakan panggilan pertama kami yang memberi tumpuan kepada "Menemukan API"
Dalam tutorial ini anda akan belajar:
- Apakah kemungkinan "mencari API" panggilan;
- Apakah parameter yang boleh anda gunakan untuk menyesuaikan anda memanggil;
- Bagaimana untuk membina permintaan dengan Python SDK;
- Bagaimana melakukan panggilan API;
Keperluan perisian dan konvensyen yang digunakan
Kategori | Keperluan, konvensyen atau versi perisian yang digunakan |
---|---|
Sistem | Sistem operasi agnostik. |
Perisian | git dan python3 |
Yang lain | Pengetahuan mengenai bahasa pengaturcaraan python dan konsep berorientasikan objek asas. |
Konvensyen | # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak |
The Mencari API
The Mencari
API adalah yang pertama yang kita pelajari dalam siri artikel ini mengenai program berinteraksi dengan eBay dengan menggunakan Python dan Ebay Python SDK. API ini menyediakan panggilan yang boleh sangat berguna untuk pembeli dan penjual dan memberi kami akses kepada keupayaan carian platform eBay, menyediakan cara yang lebih cepat untuk mengambil dan memanipulasi data berbanding dengan teknik pengikis web.
Panggilan API Penemuan
Berikut adalah, pada pendapat saya, panggilan yang paling relevan yang disediakan oleh Mencari
API:
- FindItemSAdvanced - marilah kita melakukan pertanyaan yang kompleks dan memohon penapis;
- FindItemsByCategory - marilah kita mencari artikel yang dimiliki oleh kategori tertentu;
- FindItemsByKeywords - Dengan panggilan ini kita dapat mencari item berdasarkan kata kunci;
- FindItemsByProduct - Dengan panggilan ini kita dapat mencari item berdasarkan pengenal seperti ISBN, EAN, UPC dan EPID;
Anda boleh menemui senarai lengkap panggilan yang ada untuk Mencari API
di halaman yang berdedikasi.
Dalam tutorial ini, namun kami akan memberi tumpuan kepada findItemsbykeywords
Panggilan.
Sebelum kita mula
Dalam artikel sebelumnya dalam siri ini, kami menubuhkan persekitaran kerja kami, oleh itu dari sekarang saya akan mengandaikan bahawa anda telah memasang Ebay Python SDK dengan betul dan mencipta kunci API. Oleh kerana kita bekerja dengan Mencari
API, kita boleh bekerja secara langsung di tapak pengeluaran.
Mari mulakan, maka. Sebagai perkara pertama kita membuat direktori sebagai asas projek kami; Kami akan (menghairankan) menyebutnya "eBay":
$ mkdir eBay
Di dalam direktori ini, kita perlu menyimpan kelayakan kita di eBay.yaml
fail, seperti yang kita bincangkan dalam artikel sebelumnya. Anda boleh menemui templat fail ini di dalam akar repositori github yang kami klon. Inilah kandungan saya eBay.yaml
fail, di mana saya telah memasuki kelayakan saya:
Mencari API
, adalah ID App
untuk persekitaran pengeluaran kami. Panggilan API pertama kami
Secara lalai eBay menerima permintaan API dan menyediakan dalam bentuk XML
Struktur: Apa yang memungkinkan kita untuk berinteraksi dengan unsur -unsur tersebut dengan cara yang berorientasikan objek adalah sdk python. Sekarang kita mempunyai kelayakan kita, kita boleh mula membuat permintaan API pertama kita. Buat fail baru memanggilnya FindByKeywords.py
, Di dalamnya perkara pertama yang perlu kita lakukan ialah mengimport modul yang diperlukan:
#!/usr/bin/env python3 dari ebaysdk.mencari sambungan import
Salinan Perkara seterusnya yang perlu dilakukan ialah memulakan contoh Sambungan
kelas, inilah cara kita melakukannya:
API = Sambungan (config_file = 'eBay.yaml ', siteId = "eBay-us")
Kami lulus beberapa parameter kepada pembina Sambungan
Kelas: config_file
, dan SITEID
. Yang pertama diperlukan untuk menentukan jalan ke fail yang mengandungi kelayakan kami: kerana secara lalai nilainya adalah sama dari yang kami berikan, kami dapat menghilangkannya. Hujah -hujah kedua yang diperlukan untuk menentukan tapak negara eBay, permintaan harus ditunjukkan kepada: "Ebay-us"
adalah lalai. Sekiranya saya mahu melakukan carian saya di laman Itali, sebagai contoh, saya akan menggunakan "EBay-it"
sebaliknya. Banyak parameter lain boleh diluluskan untuk tweak konfigurasi lalai, tetapi untuk mengetahui persediaan kami cukup. Mari kita teruskan lebih jauh.
Kami memulakan contoh kami Sambungan
kelas, sekarang kita perlu membina permintaan, yang akan dimasukkan dalam panggilan API. Terima kasih kepada Python SDK, kami boleh mewakili permintaan dengan a Kamus
, Menentukan parameternya dengan pasangan nilai utama:
permintaan = 'kata kunci': 'tuan cincin',
Salinan Di atas adalah permintaan minimum yang mungkin untuk findItemsbykeywords
Hubungi: Kami hanya menetapkan kata kunci untuk dicari. Ini mungkin kerana 'Kata kunci'
adalah satu -satunya parameter yang diperlukan untuk panggilan ini.
Bergantung pada panggilan yang ingin kami lakukan, kami dapat menggunakan banyak parameter lain untuk memperbaiki permintaan kami. Untuk mengetahui dengan tepat semua parameter permintaan yang ada untuk panggilan tertentu, anda boleh berunding dengan dokumentasi eBay yang sangat terperinci untuknya.
Menyekat carian kami dengan penapis
Kami dapat menentukan senarai penapis di dalam permintaan kami, sehingga jumlah hasil yang dikembalikan akan dikurangkan. Di dalam permintaan, itemfilter
kunci dikaitkan dengan array yang mengandungi semua penapis, masing -masing dalam bentuk kamus, di mana nama
kunci dikaitkan dengan rentetan yang mewakili nama penapis, dan nilai
Satu dikaitkan dengan nilai sebenar yang harus digunakan untuk penapis. Mari lihat contoh. Katakan kami ingin menambah penapis pada permintaan kami, untuk menyekat carian kami hanya untuk item "baru":
permintaan = 'kata kunci': 'tuan cincin', 'itemfilter': ['name': 'condition', 'value': 'new']
Salinan Dalam contoh di atas kami menggunakan keadaan
penapis, tetapi banyak lagi yang ada. Contohnya, ExcludeSeller
Penapis berguna untuk mengecualikan penjual tertentu dari hasilnya, sementara FreeshippingOnly
satu untuk menyekat carian hanya untuk barang yang dijual dengan penghantaran percuma. Senarai penapis dan nilai yang mungkin mereka benar -benar panjang: sekali lagi, anda boleh menemui mereka semua yang berunding dengan dokumentasi rasmi.
Menafikan hasilnya
Satu lagi parameter yang sangat berguna yang boleh kami tambahkan pada permintaan kami adalah PaginationInput
. Dengan menggunakannya, kita dapat menentukan format penomboran yang dikehendaki. Di dalam permintaan, PaginationInput
Kunci dikaitkan dengan kamus, sendiri yang mengandungi dua kunci: entriesperpage
dan mukasurat
.
Dengan yang pertama kita dapat menentukan berapa banyak hasil yang ingin kita terima "setiap halaman": tidak lebih dari 100
Keputusan setiap halaman disokong (ini juga nilai lalai), sementara minimum adalah 1
. Dengan elemen kedua, mukasurat
, Kami boleh menentukan halaman apa yang ingin kami terima dalam hasilnya.
Katakanlah, sebagai contoh bahawa kami mahu tidak lebih daripada 10 hasil setiap halaman dan kami hanya berminat di halaman pertama, permintaan kami akan menjadi:
permintaan = 'kata kunci': 'tuan cincin', 'itemfilter': ['name': 'condition', 'value': 'new'], 'PaginationInput': 'Entriesperpage': 10, ' pagenumber ': 1
Salinan Sebenarnya kita boleh ditinggalkan mukasurat
, Oleh kerana nilai lalai selalu "1".
Menyusun hasilnya
Parameter lain yang sangat berguna yang boleh kita tambahkan pada permintaan kami, adalah aturan susunan
. Dengan parameter ini kita boleh menggunakan salah satu kriteria penyortiran yang ada untuk mengatur hasil kami dengan lebih baik. Katakanlah sebagai contoh, kami ingin menyusun hasil kami dengan harga dalam urutan menaik, jadi mempunyai item termurah yang termasuk dalam hasil yang pertama:
permintaan = 'kata kunci': 'tuan cincin', 'itemfilter': ['name': 'condition', 'value': 'new'], 'PaginationInput': 'Entriesperpage': 10, ' pagenumber ': 1,' sortorder ':' priceplusshippinglowest '
Salinan Dalam kes ini kita gunakan Priceplusshippinglowest
Sebagai perintah semacam, jadi barang -barang yang termasuk dalam hasilnya, akan disusun mengikut urutan menaik dengan hasil jumlah harga dan bayaran penghantaran mereka. Sama seperti penapis, pesanan penyortiran yang tersedia terlalu banyak dilaporkan di sini. Antara yang lain kita boleh gunakan Distancenearest
atau Endtimesoonest
untuk menyusun hasil dengan jarak dalam urutan menaik, atau pada akhir akhir yang paling dekat. Anda boleh menemui semua kriteria penyortiran yang mungkin dengan berunding dengan jadual ini.
Menghantar permintaan kami dan mendapatkan hasilnya
Sekarang kami telah selesai membuat permintaan kami, kami mesti menghantarnya ke eBay dan dapatkan hasilnya. Untuk mencapai tugas pertama, kami menggunakan melaksanakan
kaedah pada kami API
objek, menentukan nama panggilan yang ingin kami gunakan sebagai hujah pertama, dan kamus yang mewakili permintaan kami sebagai yang kedua. Inilah skrip kami secara keseluruhannya pada ketika ini:
#!/usr/bin/env python3 dari ebaysdk.Mencari sambungan import jika __name__ == '__main__': api = sambungan (config_file = 'eBay.yaml ', debug = true, siteId = "eBay-us") permintaan = ' kata kunci ':' tuan cincin ',' itemfilter ': [' name ':' condition ',' value ':' new ' ], 'PaginationInput': 'Entriesperpage': 10, 'Pagenumber': 1, 'sortorder': 'pricePlusShippingLowest' response = api.Jalankan ('findItemsbykeywords', permintaan)
Salinan Keputusan kami akan dikembalikan, dan kami akan merujuknya dengan respons
pembolehubah. Kami kini ingin mengaturnya, supaya untuk setiap hasil kita boleh mempunyai tajuk dan harga yang dipaparkan di skrin dalam format yang bagus, kami boleh menambah gelung mudah untuk mencapai hasil ini:
untuk item sebagai tindak balas.Balas.hasil carian.Item: cetak (f "tajuk: item.tajuk, harga: item.menjualStatus.harga semasa.nilai ")
Salinan Jika kita kini cuba melancarkan skrip, kami memperoleh hasil berikut:
Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Women Manring SZ12, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring SZ13, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring Size9, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring SZ13, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring SZ11, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring Size7, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring SZ12, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring Size9, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring Size8, Harga: 0.01 Tajuk: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Men Women Ring SZ13, Harga: 0.01
Pada ketika ini anda boleh bertanya: bagaimana saya dapat mengetahui struktur hasil yang tepat? Ini adalah soalan yang baik, dan anda boleh mendapat jawapan dengan memeriksa XML
Perwakilan output permintaan panggilan yang anda dapat dalam dokumentasi eBay yang didedikasikan untuk panggilan tertentu. Anda boleh mencari yang ada findItemsbykeywords
dengan mengikuti pautan ini.
Kesimpulan
Semasa dalam artikel sebelumnya, kami bercakap tentang cara membuat persediaan persekitaran kerja kami, dapatkan kunci API kami dan pasang Python SDK, di bahagian kedua siri artikel kami mengenai API eBay kami menghampiri Mencari API
, dan kami membina permintaan mudah menggunakan findItemsbykeywords
Panggilan. Kami melihat secara ringkas bagaimana untuk menambah penapis dan menentukan pesanan penyortiran kepada permintaan kami dan bagaimana untuk bekerja dengan hasil yang dikembalikan.
Dalam artikel seterusnya, antara lain, kami akan membina kedai kami dan kami akan melihat cara menggunakannya Perdagangan
API untuk membuat dan memuat naik item ke dalamnya. Kesimpulannya di sini adalah rekod dokumentasi rasmi yang kami rujuk dalam artikel ini:
- Dokumentasi mengenai
findItemsbykeywords
Panggilan - Senarai penapis permintaan yang ada
- Senarai pesanan penyortiran yang ada
- Senarai panggilan yang ada untuk
Mencari API
Jadual kandungan
- Bahagian 0
Pengenalan
- Bahagian I
Mendapatkan kunci dan mengakses kotak pasir
- Bahagian II
API Penemuan
- Bahagian III
API perdagangan
- Bahagian IV
API Merchandising
Tutorial Linux Berkaitan:
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Perkara yang hendak dipasang di Ubuntu 20.04
- Cara membuat pakej flatpak
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
- Menguasai Gelung Skrip Bash
- Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
- Cara Bekerja Dengan API Rest WooCommerce dengan Python
- Tutorial Debugging GDB untuk Pemula
- Cara Menggunakan Adb Android Debug Bridge untuk Mengurus Android Anda ..
- « Pengenalan kepada ORM Doktrin dan Corak Mapper Data dalam PHP
- Pengenalan kepada API eBay dengan Python API Merchandising - Bahagian 4 »