ERG::datagrab

Source (url) http://curlybraces.be/wiki/index.php/ERG::datagrab
Site satellite Curlybraces
Date 2019-02-04 10:59:09

De {}

Aller à : navigation, rechercher

Sommaire[modifier]

Data grab[modifier]

Session du 24/09/2018[modifier]

Objectif[modifier]

À partir de la page wikipédia Liste de écoles d'art en Belgique. Sur base des écoles d'art à Bruxelles construire un générateur de page wiki d'école d'art.

Étapes[modifier]

Ensuite le script java renvoie le résultat dans une page HTML avec une mise en page rapide. À chaque fois que l'on ouvre le fichier HTML, une page aléatoire est générée à partir de la base de données que l'on a fourni au départ.


1datagrab 24 09 18.png


Session du 08/09/2018[modifier]

Partie Grab / Côté client[modifier]

Plutôt que de pré-télécharger dans un dossier les pages .html qui servent d'input au script, on utilise urllib : une librairie python qui permet de faire des requêtes http. Cela permet que l'input soit juste une suite d'adresses URL de pages wikipédia. Le programme va les chercher sur le net et en télécharge le code html. Le script python qui "grab" les datas et les mets dans une variable (ou ici un fichier .txt) est terminé:

import urllib
from bs4 import BeautifulSoup
 
#list of urls we use as source material
 
urls=['https://en.wikipedia.org/wiki/Soup',
      'https://en.wikipedia.org/wiki/Rain']
 
#we request each of those url in a 'htmls' list
htmls=[]
for url in urls:
    html = urllib.urlopen(url)
    htmls.append(html.read())
 
#we create a 'soup' html parser objet for every html page requested
soup=[]
for html in htmls: 
    soup.append(BeautifulSoup(html, 'html.parser'))
 
#we put all the text between the <p> markups of those html in a .txt file
text = []
with open('text.txt', 'w') as f:
    for sp in soup:
        for tag in sp.find_all('p'):
            text.append(tag.get_text())
            f.write(tag.get_text().encode("utf-8"))

Note: le script python n'aurait pas pu être incorporer dans la partie javascript parce que javascript est côté serveur et ne permet donc pas de faire des requêtes pour récupérer les données de pages html sur le net, cette action est obligé de se trouver dans un script côté client.

Sessions suivantes confondues[modifier]

Communication entre l'algorithme de génération et la partie Grab[modifier]

Pour que l'algorithme de génération de texte en javascript puisse fonctionner, on doit passer le texte récuperé en python à une variable du script javascript grâce à Ajax.

Installer WAMP qui permet d'avoir entre autre APACHE pour windows. Ce que fait APACHE c'est de créer un serveur en pointant une certaine direction de dossiers. Ensuite on peut mettre le script python sur ce serveur (donc dans le dossier spécifié). Le protocole de communication fonctionne comme cela:

En fait cela fonctionne comme une requête http à une API, qui exécute tout les programmes qu'elle veut sur un serveur et les renvoi à l'application. Voici un bon tutoriel la-dessus.

Algorithme de génération de texte[modifier]

Pour faire un mashup des différents textes extirpés des pages html, on va utiliser un algorithme typique de NLP (Natural Language Processing - le domaine de l'informatique qui s’intéresse à l'analyse et à la synthèse de texte). L'algorithme fonctionne comme ceci:

co -> {'u'}
ou -> {'c',' ','s'}
uc -> {'o'}
u_ -> {'c'}
c' -> {'e'}
...

Note finale[modifier]

Ce qui à été fait:

Ce qu'il reste à faire:

Note:

voici un exemple de bout de phrase généré en mélangeant les pages des écoles d'art en belgique.

L’école est importante avec une vingtaine de nationale supérieure des arts décoratifs par l'architecture de l'institutions se développement d'un orchestre composé de professeur et l’étudiant-es ont aussi l’occasion de se confronter à d’autres pratiques.
Organisé en vastes plateaux superposés, il abrite plusieurs orientations ou lors de l’usage de différentes sensibilités artistiques: Plusieurs associations contribuent à son dynamisme et à son rayonnement similaire, notamment des vernissages et des expositions à la suite des collaborations entre étudiants est compris entre 10 et 15 par classe.

Un autre essaies avec les pages wikipédia Superman, Pluie et Champignon.

Le plomb protègent contenir des quantité d'ions ou de composés aromatique et crypté, mais également dit par litre d'eau annuel, de vastes « rideaux de pluie créent des nuages chauds et secs mais aussi son lot de nouvelle série censée raconter des aventure Comics.

Configuration Apache (04-03-19)[modifier]

<Directory  "d:/erg/projets/wiki/cgi-bin/">
   Addhandler cgi-script .cgi .py
   Options +Indexes +FollowSymLinks +ExecCGI
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>
   print "Content-type: text\n"
   print "Coucou"

Récupérée de « http://curlybraces.be/wiki/index.php?title=ERG::datagrab&oldid=3143 »

Dernière modification effectuée le 7 février 2019.