Pengantar Ebay API dengan Python the Finding API - Bagian 2
- 2496
- 226
- Enrique Purdy
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;
Persyaratan dan konvensi perangkat lunak yang digunakan
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:
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…
- « Pengantar Doktrin ORM dan Pola Mapper Data di PHP
- Pengantar Ebay API dengan Python The Merchandising API - Bagian 4 »