डिजी-कुंजी भाग संख्या, निर्माता, निर्माता भाग संख्या, विवरण, इत्यादि जैसी जानकारी को स्वचालित रूप से पुनः प्राप्त करने के लिए कैसे करें, शायद GET http का जवाब दे रहा है:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=DK_PART_NUMBER
(सही मापदंडों के लिए गुस्सा करने के लिए धन्यवाद)
जहां DK_PART_NUMBER डिजिके पार्ट नंबर है।
क्या किसी को पता है कि क्या उनके पास एक वेब सेवा है या बस इसके लिए एक बेहतर इंटरफ़ेस है?
इस सवाल को पूछने के बाद मैंने आगे बढ़ने का फैसला किया और डिगिकी से कुछ बुनियादी लाने के लिए कुछ लिखा:
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
[मूल्य विराम / इकाई मूल्य / विस्तारित मूल्य] तालिका की केवल पहली डेटा लाइन पर कब्जा कर लिया गया है।