2009-09-18 11 views
9

Ero curioso di sapere se qualcuno ha mai sentito parlare di qualche tipo di API per le schede delle chitarre? Il pensiero mi passò per la mente che sarebbe stato davvero molto bello se potessi prendere le schede di chitarra da internet per portare nella mia app C#, ma non sono stato in grado di trovare nulla.Guitar Tab API?

Grazie, Chris

+0

Il tag "wpf" indica che stai cercando un controllo WPF per visualizzare i Guitar Tabs? – dtb

+0

Sto usando WPF per il mio design dell'interfaccia utente. Penso che il mio problema principale attualmente sia quello di ottenere i dati della scheda della chitarra. Non riesco a trovare alcuna fonte di dati per loro. – Chrisc

+0

Ho rimosso il tag wpf perché è irrilevante a questa domanda. –

risposta

6

È possibile utilizzare System.Net.WebRequest per leggere il repository della vostra scelta.

È anche possibile utilizzare System.ServiceModel.Syndication.SyndicationFeed per leggere i feed RSS.

MODIFICA: Provare a raschiare http://www.mxtabs.net/guitar_tabs/ utilizzando WebRequest.

È possibile scrivere codice che invia richieste alle pagine di tale sito Web (o di qualsiasi altro) e analizza le risposte per estrarre le informazioni.

Tuttavia, è possibile che si desideri ottenere prima il permesso. Potrebbero persino offrirti un'API.

+1

+1 per contrastare l'inesplicabile downvote. – MusiGenesis

+0

LOL. Ogni tab di chitarra che ho trovato ha * Stairway to Heaven * come la prima scheda elencata. Dai, gente, ci sono * altre * canzoni di chitarra nel mondo! – MusiGenesis

+0

Non ho votato a bassa risoluzione questa risposta, ma credo che Chrisc stia cercando un modo per analizzare le schede, non per averle in primo luogo. –

0

http://www.911tabs.com/ sembra avere una vasta selezione e sembra che siano tutti una variante di ASCII-art, quindi sarebbe relativamente facile scrivere una routine di scrittura di testo o HTML. Tuttavia, non sembrano utilizzare un formato molto standardizzato, quindi potrebbe essere più lavoro di quanto pensassi.

+0

è lo screen rasking della migliore soluzione .NET in circolazione? ummm, no. – D3vtr0n

2

Per raschiare una pagina Web, innanzitutto individuare esattamente quali dati si desidera estrarre.

Visitare le pagine pertinenti con Fiddler in esecuzione e osservare le richieste HTTP e le risposte ottenute.

È quindi possibile scrivere codice C# che richiede la pagina in questione e legge attraverso la risposta, riga per riga, alla ricerca di linee che siete interessati.

Se la pagina web è lo standard XHTML, è anche possibile analizzarlo usando XDocument, ma la maggior parte delle pagine web non lo sono.

+0

Come possiamo un parser a prova di futuro di questo tipo se la pagina web remota cambia la sua struttura? Ad esempio, il mio parser sta cercando il tag "music" e lo hanno modificato in "musical". Non vedo il modo di affrontare queste cose, ma lo chiedo comunque. – sandalone

+0

La risposta breve è: non è possibile. Scraping HTML sarà sempre intrinsecamente dipendente dalla struttura della pagina che stai raschiando, e tale struttura probabilmente cambierà (anche se la struttura dei dati sottostanti rimane relativamente stabile). – deyur

2

Si dovrebbe avvicinarsi da un altro punto .. Perché non c'è un buon formato dati per trasferire i dati della scheda della chitarra? Voglio dire, l'arte ASCII è buona, ma è facilmente danneggiata, e non fa bene le informazioni relative al tempo.

Se si riuscisse a trovare un formato che potesse raggiungere la massa critica, sarebbe una buona cosa.

+0

Moose, è qualcosa su cui potrei riflettere nel prossimo futuro. Ma, per ora, non ho davvero il tempo di investire, purtroppo. – Chrisc

+0

^sembra che tu voglia più di quello che puoi offrire. Suggerisco davvero di scrivere il proprio servizio web per visualizzare i campi blob, è molto facile da fare, è compatibile con .NET CLR e puoi condividerlo con noi su Stackoverflow. Non aver paura, ti aiuterò a farlo se vuoi. – D3vtr0n

+0

Devtron, potresti indicarmi un tutorial o un esempio di servizio web? – Chrisc