Récupérer des données d'une page internet

Fermé
mrkanter - 25 juin 2013 à 16:29
 mrkanter - 26 juin 2013 à 09:40
Bonjour,

sous Excel 2010 il est possible d'importer des données d'une page internet. Il suffit d'aller dans l'onglet "Données" puis dans Données externes" cliquer sur "A partir du web". Une fois l'url entré on sélectionne la section que l'on souhaite importer et Excel colle les données dans notre classeur.
Maintenant j'aimerais savoir comment faire la même chose mais en langage HTML.
Je coince, j'ai besoin de recueillir des infos d'une page internet. Je n'ai pas la possibilité d'installer un serveur donc pas de PHP. Il me reste HTML, Javascript.
Une solution ?

Merci

2 réponses

Salut,

>sous Excel 2010 il est possible d'importer des données d'une page internet.

Qui sont? Un tableur fonctionne par feuille de calcul, il faut donc que la page en question s'y prête... Si vous allez sur n'importe quelle page(ex: Google, une page de ccm...) vous pouvez toujours faire importer les données vous n'obtiendrez aucune donnée puisque les dites données quand il y en a sont affichée, c'est le navigateur qui les traite.
La fonction dont vous parlez fonctionne certainement avec un fichier de donnée(csv, sql) qui va passer par internet et non l'affichage d'une page web.

>Maintenant j'aimerais savoir comment faire la même chose mais en langage HTML.

Sur internet, les pages web(http)vous séparez le contenu de la forme(sa mise en page). Par exemple pour écrire un paragraphe:
<p>Ici un paragraphe</p>
Le texte entre les balises de paragraphe "p" est le contenu, la forme c'est la balise p(pour paragraph).
HTML permet uniquement d'afficher des données. Pour traiter des flux de données il vous faut un serveur de bases de données et PHP qui va faire la liaison entre l'affichage(html) et la base(par exemple mySQL).

>Je n'ai pas la possibilité d'installer un serveur donc pas de PHP. Il me reste HTML, Javascript.

En clair: pas de serveur pas de données. HTML = site statique, le contenu qui est présent y est mis en page uniquement.
Javascript fonctionne sur le navigateur du client.
Éventuellement avec le DOM vous pouvez obtenir le contenu de balises HTML.
Pour un Système d'Information viable c'est pas recommandé, autant faire un fichier de données XML ou CSV que vous importez...mais bon c'est pas une base et tôt ou tard vous aurez des problème avec ce genre de bidouillage; plus tard vous les aurez (les problèmes) plus lourd ils seront et vous risquez de perdre toutes vos données.

Une question(même 2) me turlupine:
Pourquoi pas de serveur de bases de données? Si vous ne le faites pas en local utilisez celui de l'hébergeur.

La 2ème question est bien sûr: quel est le but de votre système d'information? Des fichiers Excel ne sont bien sûr pas fait pour faire ce que fait une base de données, pour la compta/secrétariat ça va (et encore) mais pour archiver, classer, modifier, trier et enregistrer des informations cela ne s'y prête guère. Peut être pensez à revoir vos acquis pour des méthodes professionnelles(ne pas utiliser Excel pour faire ce qu'il n'est pas fait pour juste par habitude).
Je vous recommande pas ACCESS mais selon vos besoins c'est une solution intermédiaire(et peu fiable) peut être envisageable tant que votre analyse est cohérente.
0
Bonjour,

merci pour cette première réponse.
En fait, j'essaye de faire un petit outil pour le boulot (juste pour mon équipe, donc pas un outil pour toute l'entreprise), mais sur nos postes il n'est pas possible d'installer des logiciels (pas les droits...). Donc pas de Easy PHP, WAMP... Il me reste donc HTML, Javascript.

Nous avions déjà un outil existant sur Excel avec macro (VB) et j'ai voulu l'améliorer. Sous excel j'arrive à rapatrier des données au format XML mais aussi des données du page web qui ne sont donc pas au format CSV ou XML. Sous excel j'utilise la macro:
With Sheets("maFeuille").QueryTables.Add(Connection:= _
                           "URL;" & monUrl_
                           , Destination:=Sheets("maFeuille").Range("$A$1"))
                           .Name = _
                           .FieldNames = True
                           .RowNumbers = False
                           .FillAdjacentFormulas = False
                           .PreserveFormatting = True
                           .RefreshOnFileOpen = False
                           .BackgroundQuery = True
                           .RefreshStyle = xlInsertDeleteCells
                           .SavePassword = False
                           .SaveData = True
                           .AdjustColumnWidth = True
                           .RefreshPeriod = 0
                           .WebSelectionType = xlSpecifiedTables
                           .WebFormatting = xlWebFormattingNone
                           .WebTables = "3,6,11"
                           .WebPreFormattedTextToColumns = True
                           .WebConsecutiveDelimitersAsOne = True
                           .WebSingleBlockTextImport = False
                           .WebDisableDateRecognition = False
                           .WebDisableRedirections = False
                           .Refresh BackgroundQuery:=False
                       End With


Et c'est donc le WebTables ="3,6,11" qui me ramène les données des tableaux HTML si j'ai bien compris (les tableaux 3, 6 et 11).
Exemple à cette adresse: http://www.microsoft.com/france/pme/conseils/fiches-pratiques/excel-recuperer-donnes-web.aspx

Désormais le but est de migrer l'outil sur du HTML.
Une des données que j'aimerais récupérer ce trouve dans la cellule d'un tableau:
Ex:
<html><body>
<table>
<tr><td>Ma valeur a importer</td></tr>
</table>
</body></html>


Donc sur ma page "A", je veux afficher "Ma valeur à importer" qui se trouve sur la page "B" (sans avoir à ouvrir cette page).

En cherchant un peu, j'ai l'impression que c'est possible en Javascript (jquery ou ajax) mais je n'arrive pas à trouver le site qui pourrait me donner la solution.

J'espère que ma demande est claire ^^

Merci
0