Cara mengambil secara otomatis, mengingat nomor komponen Digi-Key, informasi seperti Pabrikan, Nomor Komponen Pabrikan, Deskripsi, dll. Mungkin menguraikan GET http terkait dengan:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=DK_PART_NUMBER
(terima kasih kepada angryee untuk parameter yang benar)
Di mana DK_PART_NUMBER adalah nomor bagian Digikey.
Apakah ada yang tahu jika mereka memiliki layanan web atau hanya antarmuka yang lebih baik untuk ini?
Setelah mengajukan pertanyaan ini, saya memutuskan untuk melanjutkan dan menulis sesuatu yang diambil dari Digikey:
dk_pn = '587-1962-1-ND'
from urllib import urlopen
from sgmllib import SGMLParser
headers = ['Digi-Key Part Number',
'Manufacturer',
'Manufacturer Part Number',
'Description',
'Lead Free Status / RoHS Status',
'Operating Temperature',
'Standard Package',
'Price Break',
'Unit Price',
'Extended Price']
class DK_Parser(SGMLParser):
def reset(self):
SGMLParser.reset(self)
self.last_td = ''
self.inside_th = False
self.inside_td = False
self.grab_data = False
self.part_info = {}
self.hdr_index = 0
self.row_hdrs = []
def start_tr(self, attrs): # row
self.first_header_in_row = True
def start_th(self, attrs): # header cell
if self.first_header_in_row:
self.first_header_in_row = False
self.row_hdrs = []
self.hdr_index = 0
self.inside_th = True
def end_th(self):
self.inside_th = False
def start_td(self, attrs): # data cell
self.inside_td = True
def end_td(self):
self.inside_td = False
self.hdr_index = self.hdr_index+1
def handle_data(self,text):
text = text.strip()
if self.inside_th:
if text in headers:
self.row_hdrs.append(text)
self.last_td = ''
self.grab_data = True
else:
self.grab_data = False
elif self.inside_td and self.grab_data:
if self.hdr_index:
self.last_td = ''
if self.hdr_index < len(self.row_hdrs):
self.last_td = self.last_td + text
self.part_info[self.row_hdrs[self.hdr_index]] = self.last_td
dk_url = 'http://search.digikey.com/scripts/DkSearch/dksus.dll'
dk_params = '?Detail&name='
sock = urlopen(dk_url + dk_params + dk_pn)
parser = DK_Parser()
parser.feed(sock.read())
sock.close()
parser.close()
for k,v in parser.part_info.items():
print k,":",v
Hanya baris data pertama dari tabel [harga break / harga satuan / harga perpanjangan] yang ditangkap.
components
bom
apalopohapa
sumber
sumber
Jawaban:
Anda ingin menggunakan opsi detail daripada kata kunci. Seperti ini:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=458-1003-ND
Itu mengembalikan halaman HTML yang merupakan teks yang dapat diuraikan. Semuanya dalam format tabel sehingga Anda dapat membuat daftar istilah yang Anda minati dan parsing nilai-nilainya. Saya dapat melihat skrip daftar bagian yang memuat daftar bagian dan nilai yang ingin Anda ambil (yaitu, Voltage, Max Current, atau bagaimanapun Digikey mencantumkannya) dan kemudian membuat beberapa Python untuk membaca nomor bagian, ambil halaman, parsing info dan tempel dalam file CSV, database atau HTML. Saya telah memikirkan sesuatu yang serupa dan sepertinya tidak terlalu sulit. Yah, cukup sulit untuk menghentikan saya dari mencambuknya sekarang juga :)
sumber
Mungkin Anda bisa melakukannya melalui API Octopart ?
sumber
Jawaban terbaik saat ini adalah https://services.digikey.com/ sebagai ' Layanan Web Pencarian Digi-Key (SWS) dan Layanan Web Pemesanan (OWS) memberi klien akses real-time ke basis data dan pemesanan produk Digi-Key yang luas. sistem. '
Apa yang Anda lakukan adalah "pengikisan layar", yang rentan pecah saat DigiKey memperbarui situs web mereka.
sumber
Berikut ini contoh kode dalam python, ruby dan JS untuk melakukan ini dengan API Octopart
http://octopart.com/api/docs/v3/overview#bom-matching
Anda dapat memfilter untuk Digikey di tingkat aplikasi.
sumber
Jika Anda menyimpan BOM sebagai spreadsheet MS Excel, Anda dapat menarik harga langsung ke lembar kerja melalui Data-> Dapatkan Data Eksternal-> Dari Web. Saya menggunakan Excel 2010. Ini adalah makro yang saya buat menggunakan perekam makro.
sumber