Pengenalan kepada API eBay dengan Python API Penemuan - Bahagian 2

Pengenalan kepada API eBay dengan Python API Penemuan - Bahagian 2

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;
Pengenalan kepada API eBay dengan Python: The Finding API - Bahagian 2

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
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:

kandungan fail konfigurasi eBay API seperti yang anda boleh perhatikan, yang perlu kami sediakan dalam bahagian yang didedikasikan untuk 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 ..