Pengantar Ebay API dengan Python the Finding API - Bagian 2

Pengantar Ebay API dengan Python the Finding API - Bagian 2

Dalam artikel sebelumnya kami melihat cara melakukan langkah -langkah awal untuk mempersiapkan lingkungan kerja kami, membuat pengembang ebay dan akun kotak pasir dan menghasilkan kunci dan kredensial yang diperlukan untuk menjalankan panggilan API. Dalam bab baru ini kami akan membuat permintaan pertama kami dan melakukan panggilan pertama kami yang berfokus pada "Finding API"

Dalam tutorial ini Anda akan belajar:

  • Apa saja panggilan "menemukan API" yang mungkin;
  • Apa parameter yang dapat Anda gunakan untuk menyesuaikan yang Anda hubungi;
  • Cara membangun permintaan dengan Python SDK;
  • Bagaimana melakukan panggilan API;
Pengantar Ebay API dengan Python: The Finding API - Bagian 2

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Sistem Operasi Agnostik.
Perangkat lunak git dan python3
Lainnya Pengetahuan tentang Bahasa Pemrograman Python dan Konsep Berorientasi Objek Dasar.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Itu Temuan API



Itu Temuan API adalah yang pertama yang kami jelajahi dalam serangkaian artikel ini tentang berinteraksi secara terprogram dengan eBay dengan menggunakan Python dan Ebay Python SDK. API ini memberikan panggilan yang bisa sangat berguna baik bagi pembeli maupun penjual dan memberikan kami akses ke kemampuan pencarian platform eBay, menyediakan cara yang lebih cepat untuk mengambil dan memanipulasi data dibandingkan dengan teknik pengikisan web Web.

Panggilan API Temuan

Berikut ini, menurut pendapat saya, panggilan paling relevan yang diberikan oleh Temuan API:

  • FindItemSadvanced - mari kita melakukan pertanyaan yang kompleks dan menerapkan filter;
  • FindItemsByCategory - Mari kita temukan artikel milik kategori tertentu;
  • FindItemsByKeyWords - Dengan panggilan ini kami dapat menemukan item berdasarkan kata kunci;
  • FindItemsByProduct - Dengan panggilan ini kita dapat menemukan item berdasarkan pengidentifikasi seperti ISBN, Ean, UPC dan EPID;

Anda dapat menemukan daftar lengkap panggilan yang tersedia untuk Menemukan API di halaman khusus.
Dalam tutorial ini, namun kami akan fokus pada findItemsbykeywords panggilan.



Sebelum kita mulai

Dalam artikel sebelumnya dari seri ini kami mengatur lingkungan kerja kami, oleh karena itu mulai sekarang saya akan berasumsi bahwa Anda telah menginstal dengan benar eBay Python SDK dan membuat kunci API Anda. Karena kami bekerja dengan Temuan API, kami dapat bekerja langsung di situs produksi.

Mari kita mulai. Sebagai hal pertama kami membuat direktori sebagai basis proyek kami; Kami akan (secara mengejutkan) menyebutnya "eBay":

$ mkdir ebay

Di dalam direktori ini, kita perlu menyimpan kredensial kita di eBay.yaml file, seperti yang kita bahas di artikel sebelumnya. Anda dapat menemukan templat file ini di dalam root repositori github yang kami kloning. Inilah konten saya eBay.yaml file, di mana saya telah memasukkan kredensial saya:

Konten file konfigurasi API eBay seperti yang dapat Anda amati, semua yang perlu kami berikan di bagian yang didedikasikan untuk Menemukan API, adalah ID Aplikasi untuk lingkungan produksi kami.

Panggilan API pertama kami

Secara default eBay menerima permintaan API dan berikan dalam bentuk xml Struktur: Apa yang memungkinkan kita untuk berinteraksi dengan elemen -elemen itu dengan cara yang berorientasi objek adalah Python SDK. Sekarang kita memiliki kredensial kita, kita dapat mulai membuat permintaan API pertama kita. Buat file baru Call It FindByKeywords.py, Di dalamnya hal pertama yang perlu kita lakukan adalah mengimpor modul yang diperlukan:

#!/usr/bin/env python3 dari ebaysdk.Menemukan Koneksi Impor 
Menyalin

Hal berikutnya yang harus dilakukan adalah menginisialisasi instance dari Koneksi kelas, inilah cara kami melakukannya:

API = koneksi (config_file = 'ebay.yaml ', siteId = "ebay-us")

Kami meneruskan beberapa parameter ke konstruktor Koneksi kelas: config_file, Dan SiteID. Yang pertama diperlukan untuk menentukan jalur ke file yang berisi kredensial kami: karena secara default nilainya sama dengan yang kami berikan, kami bisa menghilangkannya. Argumen kedua yang diperlukan untuk menentukan situs negara eBay, permintaan harus diarahkan ke: "EBay-AS" adalah default. Jika saya ingin melakukan pencarian saya di situs Italia, misalnya, saya akan menggunakan "Ebay-it" alih-alih. Banyak parameter lain yang dapat diteruskan untuk mengubah konfigurasi default, tetapi untuk mengetahui pengaturan kami sudah cukup. Mari kita lanjutkan lebih jauh.

Kami menginisialisasi contoh kami dari Koneksi kelas, sekarang kita perlu membangun permintaan, yang akan dimasukkan dalam panggilan API. Terima kasih kepada Python SDK, kami dapat mewakili permintaan dengan a kamus, Menentukan parameternya dengan pasangan nilai kunci:

request = 'kata kunci': 'Lord of the Rings', 
Menyalin

Di atas adalah permintaan minimal yang mungkin untuk findItemsbykeywords Panggilan: Kami baru saja menentukan kata kunci untuk mencari. Ini mungkin karena '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 persis semua parameter permintaan yang tersedia untuk panggilan tertentu, Anda dapat berkonsultasi dengan dokumentasi eBay yang cukup terperinci untuk itu.



Membatasi pencarian kami dengan filter

Kami dapat menentukan daftar filter di dalam permintaan kami, sehingga jumlah hasil yang dikembalikan akan dikurangi. Di dalam permintaan, ItemFilter kunci dikaitkan dengan array yang berisi semua filter, masing -masing dalam bentuk kamus, di mana nama kunci dikaitkan dengan string yang mewakili nama filter, dan nilai seseorang dikaitkan dengan nilai aktual yang harus digunakan untuk filter. Mari kita lihat contohnya. Katakanlah kami ingin menambahkan filter ke permintaan kami, untuk membatasi pencarian kami hanya untuk item "baru":

request = 'kata kunci': 'Lord of the Rings', 'itemFilter': ['name': 'condition', 'value': 'baru'] 
Menyalin

Dalam contoh di atas kami menggunakan kondisi filter, tetapi banyak lainnya tersedia. Misalnya, Tidak termasuk filter berguna untuk mengecualikan penjual spesifik dari hasil, sedangkan Freeshippingonly satu untuk membatasi pencarian hanya untuk barang yang dijual dengan pengiriman gratis. Daftar filter dan nilainya yang mungkin sangat panjang: Sekali lagi, Anda dapat menemukan semuanya berkonsultasi dengan dokumentasi resmi.

Memberi hasil pada hasilnya

Parameter lain yang sangat berguna yang dapat kami tambahkan ke permintaan kami adalah PaginationInput. Dengan menggunakannya, kami dapat menentukan format pagination yang diinginkan. Di dalam permintaan, PaginationInput Kunci dikaitkan dengan kamus, itu sendiri berisi dua kunci: Entriesperpage Dan nomor halaman.

Dengan yang pertama kami dapat menentukan berapa banyak hasil yang ingin kami terima "per halaman": tidak lebih dari 100 Hasil per halaman didukung (ini juga nilai default), sedangkan minimumnya 1. Dengan elemen kedua, nomor halaman, Kami dapat menentukan halaman apa yang ingin kami terima dalam hasilnya.

Katakanlah, misalnya bahwa kami menginginkan tidak lebih dari 10 hasil per halaman dan kami hanya tertarik pada halaman pertama, permintaan kami akan menjadi:

request = 'kata kunci': 'lord of the rings', 'itemfilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'entriesperpage': 10, ' Pagenumber ': 1 
Menyalin

Sebenarnya kami bisa dihilangkan nomor halaman, Karena nilai defaultnya selalu "1".

Mengurutkan hasilnya

Parameter lain yang sangat berguna yang dapat kami tambahkan ke permintaan kami, adalah Sortorder. Dengan parameter ini kita dapat menggunakan salah satu kriteria penyortiran yang tersedia untuk mengatur hasil yang lebih baik. Katakanlah misalnya kami ingin mengurutkan hasil kami berdasarkan harga dalam urutan naik, jadi untuk memiliki item termurah yang termasuk dalam hasil terlebih dahulu:

request = 'kata kunci': 'lord of the rings', 'itemfilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'entriesperpage': 10, ' pagenumber ': 1,' sortorder ':' priceplusshippinglowest ' 
Menyalin

Dalam hal ini kami menggunakan Priceplusshippinglowest Sebagai pesanan semacam itu, maka barang -barang yang termasuk dalam hasilnya, akan diurutkan dalam pesanan naik dengan hasil dari jumlah harga mereka dan biaya pengiriman mereka. Sama seperti filter, pesanan penyortiran yang tersedia terlalu banyak untuk dilaporkan di sini. Di antara yang lain yang bisa kita gunakan Distancenearest atau Endtimesoonest untuk mengurutkan hasil berdasarkan jarak dalam urutan naik, atau masing -masing dengan waktu akhir terdekat. Anda dapat menemukan semua kriteria penyortiran yang mungkin dengan berkonsultasi dengan tabel ini.

Mengirimkan permintaan kami dan mendapatkan hasilnya

Sekarang setelah kami selesai membuat permintaan kami, kami harus benar -benar mengirimkannya ke eBay dan mendapatkan hasilnya. Untuk menyelesaikan tugas pertama, kami menggunakan menjalankan metode pada kami API objek, menentukan nama panggilan yang ingin kami gunakan sebagai argumen pertama, dan kamus yang mewakili permintaan kami sebagai yang kedua. Inilah yang terlihat pada skrip kami secara keseluruhan pada saat ini:



#!/usr/bin/env python3 dari ebaysdk.Menemukan Koneksi Impor Jika __Name__ == '__main__': API = koneksi (config_file = 'ebay.yaml ', debug = true, siteId = "ebay-us") request = ' kata kunci ':' lord of the rings ',' itemfilter ': [' name ':' condition ',' value ':' baru ' ], 'paginationInput': 'EntriesPerPage': 10, 'Pagenumber': 1, 'SortOrder': 'PricePlusshippingLowest' respons = API.Execute ('FindItemsByKeyWords', permintaan) 
Menyalin

Hasil kami akan dikembalikan, dan kami akan merujuknya dengan tanggapan variabel. Kami sekarang ingin mengaturnya, sehingga untuk setiap hasil kami dapat memiliki judul dan harga yang ditampilkan di layar dalam format yang bagus, kami dapat menambahkan loop sederhana untuk mencapai hasil ini:

untuk item sebagai tanggapan.membalas.hasil pencarian.Item: print (f "title: item.judul, harga: item.menjualstatus.harga sekarang.nilai") 
Menyalin

Jika kami sekarang mencoba meluncurkan skrip, kami mendapatkan hasil berikut:



Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Wanita Manring SZ12, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Ring SZ13, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Ring Size9, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Ring SZ13, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Ring SZ11, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Cincin Size7, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Ring SZ12, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Ring Size9, Harga: 0.01 Judul: Lord of the Rings The One Ring Lotr Stainless Steel Fashion Pria Cincin SIZE8, Harga: 0.01 Judul: Lord of the Rings the One Ring Lotr Stainless Steel Fashion Pria Wanita Ring SZ13, Harga: 0.01 

Pada titik ini Anda mungkin bertanya: bagaimana saya bisa mengetahui struktur yang tepat dari hasilnya? Ini adalah pertanyaan yang bagus, dan Anda dapat memiliki jawaban dengan memeriksa xml Representasi output dari permintaan panggilan yang Anda dapat di dokumentasi eBay yang didedikasikan untuk panggilan tertentu. Anda dapat menemukannya tentang findItemsbykeywords dengan mengikuti tautan ini.

Kesimpulan

Sementara di artikel sebelumnya kami berbicara tentang cara mengatur lingkungan kerja kami, mendapatkan kunci API kami dan memasang Python SDK, di bagian kedua dari serangkaian artikel kami tentang eBay API kami mendekati Menemukan API, dan kami membangun permintaan sederhana menggunakan findItemsbykeywords panggilan. Kami melihat secara singkat cara menambahkan filter dan menentukan urutan penyortiran ke permintaan kami dan cara bekerja dengan hasil yang dikembalikan.

Dalam artikel berikutnya, antara lain, kami akan membangun toko kami dan kami akan melihat bagaimana menggunakan Jual beli API untuk membuat dan mengunggah item ke dalamnya. Kesimpulannya di sini adalah rekap dokumentasi resmi yang kami rujuk dalam artikel ini:

  • Dokumentasi tentang findItemsbykeywords panggilan
  • Daftar filter permintaan yang tersedia
  • Daftar pesanan penyortiran yang tersedia
  • Daftar panggilan yang tersedia untuk Menemukan API

Daftar Isi

  • Bagian 0

    Perkenalan

  • Bagian i

    Mendapatkan kunci dan mengakses kotak pasir

  • BAGIAN II

    API temuan

  • Bagian III

    API perdagangan

  • Bagian IV

    API merchandising

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Cara membuat paket flatpak
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Cara Mengatur Server OpenVPN di Ubuntu 20.04
  • Menguasai loop skrip bash
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Bagaimana bekerja dengan WooCommerce Rest API dengan Python
  • Tutorial debugging GDB untuk pemula
  • Cara menggunakan ADB Android Debug Bridge untuk mengelola Android Anda…