Dovrei scegliere di non utilizzare l'API di qualcuno?

0

In un lavoro che ho iniziato di recente, ho ereditato alcuni dei progetti del ragazzo che in precedenza deteneva questa posizione. Uno dei progetti era un programma che utilizzava l'API pubblica di una piattaforma Web per ottenere determinati dati dal loro sito. Il programma stesso è piuttosto semplice e viene scritto correttamente da quello che posso dire. Non è così complicato, quindi probabilmente qualsiasi grosso errore sarebbe rimasto fuori. Durante il test di questo programma, tuttavia, ottengo risultati incoerenti rispetto al loro sito web. Ex. Ricerca utilizzando una parola chiave nel programma produce 30 risultati e Ricerca utilizzando la stessa parola chiave esatta sul loro sito ufficiale produce 60 risultati.

Dopo la ricerca, ho scoperto che ciò era dovuto al fatto che le due ricerche utilizzano diversi meccanismi interni per restituire i risultati. Giusto. Stavo pensando di contattare il mio capo per riscrivere questa applicazione e utilizzare un approccio in cui interrogo direttamente il sito Web, ottenere l'HTML, trovare la classe specifica in cui risiede il testo che voglio e ottenerlo da lì. Non dovrebbe essere così difficile (lo so, le ultime parole famose ...) e aiuterebbe i nostri risultati ad essere più accurati e più estesi.

Prima che potessi parlargli di questo, ha detto che vuole fare lo stesso genere di cose, ma con un altro sito con una piattaforma simile. Hanno anche una API, ma mi chiedo se stiamo per incontrare gli stessi problemi anche qui in fondo alla strada.

Il mio capo non è un programmatore e non conosce le specifiche delle API e delle query Web, ecco perché sto chiedendo qui. È una cattiva idea non utilizzare l'API pubblica di qualcuno e invece elaborare solo l'HTML non elaborato per i dati che voglio?

    
posta SH7890 12.09.2018 - 22:39
fonte

1 risposta

7

Sì. È è cattiva pratica analizzare la pagina web piuttosto che usare l'API pubblicata.

  1. Solo perché sul web non significa che sia gratuito. Il proprietario del sito paga per la larghezza di banda e i server per eseguire il loro sito e potrebbe non voler che tu lo colpisca con un bot. Potrebbero considerarlo un attacco e citare in giudizio o adottare misure tecniche contro di te.

  2. I siti web cambiano. Ogni volta che cambiano lo stile della pagina dovrai aggiornare il tuo raschietto. Non riceverai alcuna notifica di questa modifica, quindi riceverai errori quando si verifica.

Se l'API non soddisfa le tue esigenze, richiamerei il proprietario del sito e ti chiederei se possono aggiungere un altro metodo, o dirti come ottenere il risultato desiderato.

    
risposta data 13.09.2018 - 00:51
fonte

Leggi altre domande sui tag