Scraping dei dati dal sito Web e passaggio in Office - molte restrizioni [chiuso]

3

Recentemente, mi è stato chiesto di aiutare con qualche progetto di ottimizzazione laterale nella nostra azienda, ho fatto delle buone ricerche. Non sono ancora sicuro al 100% se questo è il modo più efficiente per farlo.

Problema:

  • Scraping per oltre una dozzina di informazioni diverse da un sistema interno (sito Web) e passandole nel modello di documento di Microsoft Office.

Restrizioni:

  • Il sito web funziona solo in IE 9
  • Il sistema non ha alcuna API / servizi web
  • Questo sarà usato in più di 100 diverse workstation
  • Sulle workstation, sono ammessi solo IE 9, FF o Chrome
  • Ottenere l'accettazione per l'installazione di qualsiasi software eccetto gli strumenti Windows predefiniti sulle workstation è quasi impossibile

Per questo abbiamo creato una piccola dimostrazione di funzionamento. Sta usando Visual Basic + javascript combo. Breve descrizione: Visual Basic apre l'istanza di IE, quindi utilizzando javascript siamo in grado di accedere al sistema, andare alle schede di cui abbiamo bisogno e trovare le informazioni corrette, quindi siamo in grado di inserire questi dati nel modello di Office.

Funziona, ma non sono sicuro che questo approccio sia il migliore.

Abbiamo provato diverse soluzioni, server nodejs, Selenium, altri web scrapers, ma sembrano avere alcune limitazioni.

    
posta kuba 08.07.2015 - 21:18
fonte

1 risposta

5

Uncle Bob una volta ha detto: "Non spediamo merda ...".

Lavorando con gli strumenti legacy (IE 9) e il sito web di scraping sei:

  1. Trascorrere una quantità significativa di tempo su una tecnologia non scalabile, potenzialmente inaffidabile.
  2. Introduzione alla comprensione di componenti molto personalizzati, che richiederebbe molto tempo agli sviluppatori futuri di comprenderli e potenzialmente ti costerà molto di più nel lungo periodo.
  3. Corri il rischio di aggiornare Windows su quelle macchine e di non poter più utilizzare IE9, che richiede l'aggiornamento dell'applicazione, ecc ...

Cosa farei se fossi in questa situazione:

Opzione 1: client basato su API e Node.js. Questo è semplice e probabilmente il più intelligente dei costi e del futuro. Cercherei di convincere il gestore che abbiamo bisogno di software aggiuntivo installato sulle macchine. Capisco che la loro politica non lo sia, ma devono capire che sono loro a richiedere funzionalità aggiuntive, quindi hanno avuto la possibilità di fare una scelta lì.

Aggiorna il sistema con le funzionalità API - potenzialmente potresti averne bisogno da qualche altra parte in futuro. Che cosa succede se la tua azienda introduce terminali basati su tablet mobile, non c'è più IE9 lì, quindi l'API è una buona idea a lungo termine.

Opzione 2: scraper basato su Node.js senza API. Ancora una volta, richiede l'installazione di pezzi aggiuntivi sulle macchine Windows, non è possibile aggirarli e il business deve capirlo. Usando Node.js puoi usare un numero di moduli che simulano DOM e puoi navigare in esso proprio come faresti nel browser, eccetto che senza interfaccia utente. Probabilmente ci vorrà più tempo dell'API e probabilmente ti costerà di più, quindi questa opzione è valida se non sei il proprietario dello scrapee:)

Opzioni 3: Procedi con il tuo approccio, ma personalmente non lo farei. Sei assunto come sviluppatore professionista e parte dell'essere un professionista fa capire agli affari che a volte è troppo sbagliato procedere:)

    
risposta data 08.07.2015 - 21:56
fonte

Leggi altre domande sui tag