Como recuperar automaticamente, com base no número de peça da Digi-Key, informações como Fabricante, Número de peça do fabricante, Descrição etc. Talvez a análise do http GET se refira a:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=DK_PART_NUMBER
(obrigado a angryee pelos parâmetros corretos)
Onde DK_PART_NUMBER é o número da peça do Digikey.
Alguém sabe se eles têm um serviço web ou simplesmente uma interface melhor para isso?
Depois de fazer essa pergunta, decidi ir em frente e escrever algo que fiz algumas buscas básicas no 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
Somente a primeira linha de dados da tabela [intervalo de preço / preço unitário / preço estendido] é capturada.
components
bom
apalopohapa
fonte
fonte
Respostas:
Você deseja usar a opção de detalhes em vez da palavra-chave. Como isso:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=458-1003-ND
Isso retorna uma página HTML, que é um texto que pode ser analisado. Está tudo no formato de tabela, para que você possa criar uma lista de termos de seu interesse e analisar os valores. Consigo ver um script da lista de peças que contém uma lista de peças e os valores que você deseja recuperar (por exemplo, tensão, corrente máxima ou como o Digikey o lista) e, em seguida, cria um Python para ler o número da peça, acessar a página, analisar as informações e colá-las em um arquivo CSV, banco de dados ou HTML. Eu estive pensando em algo semelhante e não parece muito difícil. Bem, difícil o suficiente para me impedir de sacar agora mesmo assim :)
fonte
Talvez você possa fazer isso através da API da Octopart ?
fonte
A melhor resposta atual é https://services.digikey.com/ como ' O Serviço da Web de Pesquisa Digi-Key (SWS) e o Serviço da Web de Pedidos (OWS) fornecem aos clientes acesso em tempo real ao vasto banco de dados e pedidos de produtos da Digi-Key sistema. '
O que você está fazendo é "raspagem de tela", vulnerável à quebra quando o DigiKey atualiza seu site.
fonte
Aqui está um exemplo de código em python, ruby e JS para fazer isso com a API da Octopart
http://octopart.com/api/docs/v3/overview#bom-matching
Você pode filtrar o Digikey no nível do aplicativo.
fonte
Se você mantiver sua lista técnica como uma planilha do MS Excel, poderá puxar os preços diretamente para uma planilha via Dados-> Obter dados externos-> Da Web. Estou usando o Excel 2010. Aqui está uma macro que eu criei usando o gravador de macro.
fonte