Domanda

Voglio scrivere un programma che analizza la tua squadra di baseball fantasy e ti avvisa delle azioni raccomandate, possibilmente più volte al giorno. Il problema è che non stai giocando a fantasy baseball sul mio sito, stai giocando su yahoo, o cbs, o espn, ecc.

Nella maggior parte di questi siti, le squadre e i campionati fantasy non sono pubblici, quindi è necessario aver effettuato l'accesso e un membro del campionato per vedere le squadre in campionato.

Tutto ciò di cui ho bisogno è il semplice HTML per la pagina del team su ciascuno di quei siti da inviare al mio server, dove posso quindi analizzare e analizzare il file e inviare notifiche agli utenti.

Il problema è che ho bisogno di combinazioni nome utente / password per ottenere facilmente questi dati sul mio server quando ne ho bisogno e penso che ci saranno molte persone che non vorrebbero affidare la loro password yahoo / espn / cbs per me.

Ho trovato diversi modi per risolvere questo problema:

  1. Il modo più ovvio è chiedere le proprie credenziali per il sito su cui è ospitato il loro team. Quindi potrei semplicemente accedere a livello di codice e richiedere i dati di cui ho bisogno. Immagino che un certo numero di persone si sentirebbe a mio agio nel darmi le proprie credenziali, e un certo numero di loro non tanto.

  2. Scrivi un client desktop, che l'utente scarica. Il client richiederebbe le proprie credenziali, ma fondamentalmente potrebbe fare esattamente la stessa cosa che farebbe la versione basata su server, accedere, richiedere la pagina e inviare la pagina al mio server. La differenza è che la loro password non avrebbe mai bisogno di lasciare il desktop. Il loro computer dovrebbe essere acceso e questo programma è in esecuzione affinché questo metodo funzioni.

  3. Scrivi i componenti aggiuntivi del browser che accedono alla pagina di cui ho bisogno, utilizza il cookie salvato da un precedente accesso per accedere al sito e rispedisci la pagina al mio server. Ciò non richiede che il mio software richieda mai la loro password, ma se il cookie scade, sono bloccato e non so molto di più sui componenti aggiuntivi del browser.

Sono sicuro che ci sono altre opzioni, ma queste sono quelle che ho escogitato finora.

Ho due domande: 1. Quali sono le altre possibilità per questo tipo di attività? 2. Sto sopravvalutando la riluttanza delle persone a darmi la loro password yahoo (per esempio)? L'opzione (1) sopra la scelta ovvia?

Nei commenti mi è stato suggerito di provare yahoo pipe, e sembrava un suggerimento promettente, quindi l'ho esplorato un po '. Dopo aver esaminato questo , non credo sia un'opzione. Quindi, sembra che andrò con l'opzione 1.

È stato utile?

Soluzione

Questo è un problema che ho affrontato un paio di anni fa quando volevo fare la stessa cosa. Il nostro sito è http://benchcoach.com e le opzioni che stavamo prendendo in considerazione erano le seguenti:

Originale che abbiamo preso in considerazione per ottenere le credenziali e il login dell'utente. Avremmo quindi effettuato l'accesso e raschiato le informazioni sul campionato e sulla squadra. Il problema è che dopo aver letto molti dei vari termini di servizio, ciò violerebbe sicuramente i termini di servizio. Inoltre, Yahoo! era sicuramente uno dei siti che stavamo prendendo in considerazione e i loro utenti avevano e-mail (dove potevamo accedere a dati sensibili) e Yahoo! portafoglio. Inoltre, sarebbe piuttosto banale per Yahoo / ESPN / CBS bloccare i nostri accessi programmatici per indirizzo IP.

La soluzione su cui ci siamo basati (non soddisfatti al 100% ma sembra funzionare) era chiedere ai nostri utenti di installare un bookmarklet (come delicious, digg o reddit) che avrebbe pubblicato la pagina html corrente sui nostri server, dove potevamo analizzare i dati e caricare il nostro database. Se fossero ancora registrati nel loro account Yahoo / ESPN / CBS, li indirizzeremmo direttamente alle pagine, altrimenti quei siti richiederebbero l'autenticazione. Facendo nuovamente clic sul bookmarklet, la pagina verrà pubblicata sui nostri server.

I pro di questo approccio sono stati il ??fatto che non abbiamo mai raccolto le credenziali di nessuno, quindi qualsiasi problema di sicurezza sarebbe stato alleviato. In secondo luogo, sarebbe impossibile per Yahoo / ESPN / CBS bloccare l'accesso al nostro servizio poiché non ci saremmo mai connessi direttamente ai loro server, ma piuttosto il browser dell'utente avrebbe pubblicato i contenuti del proprio browser sul nostro server.

Il problema è che bastano 2 clic per pubblicare una pagina sul nostro sito. Per i campionati testa a testa, avevamo bisogno di 3-4 pagine in modo che i nostri utenti avrebbero dovuto fare 6-8 clic per sincronizzare la loro lega con i nostri server. Stiamo ancora cercando opzioni per questo.

Una nota importante è che mi sono imbattuto nel product manager del sito Yahoo Fantasy Football in una conferenza un anno fa. Abbiamo parlato di come stavamo ottenendo i dati di Yahoo e ha confermato che ottenere le credenziali violerebbe il loro TOS e potrebbero impedirci. Anche se non penso che avrebbero, sarebbe stato difficile investire tempo ed energie per svilupparlo solo per far sì che bloccassero il nostro sito e facessero arrabbiare gli utenti chiudendo i loro account.

Altri suggerimenti

Una risposta potenzialmente più complicata potrebbe essere fatta con (ad esempio) yahoo pipe.

Ipoteticamente, si crea una pipe che richiede all'utente le proprie credenziali e gli fornisce un url che contiene i propri dati scartati. Inseriscono questo URL nel loro sito e non devono mai fornire direttamente le proprie credenziali. Ancora meglio, per i più attenti alla sicurezza, sarebbe possibile esaminare cosa stava effettivamente facendo la pipa prima di inserire qualsiasi informazione.

Il rovescio della medaglia sarebbe una maggiore complessità (così come dovresti scrivere e mantenere la pipe). Detto questo, potresti fornire un link direttamente alla pipe pubblicata dal tuo sito, per rendere le cose il più semplici possibile.

L'opzione 1 è la scelta ovvia. Le persone che si fidano del tuo sito forniranno i dettagli. Non è possibile accedere ad altri siti durante lo scraping dello schermo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top