<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://designnumerique.be/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MathiasR</id>
	<title>Design numérique - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://designnumerique.be/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MathiasR"/>
	<link rel="alternate" type="text/html" href="https://designnumerique.be/wiki/Sp%C3%A9cial:Contributions/MathiasR"/>
	<updated>2026-04-08T03:50:04Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4275</id>
		<title>Mathias</title>
		<link rel="alternate" type="text/html" href="https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4275"/>
		<updated>2023-02-24T11:25:17Z</updated>

		<summary type="html">&lt;p&gt;MathiasR : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h2&amp;gt;LA BRIQUE&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Un projet d&#039;édition en Web2Print sur le thème des Lost Média&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Un script pour récupérer toute les phrases contenant le mot projet&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import re&lt;br /&gt;
import json&lt;br /&gt;
&lt;br /&gt;
#data = open(&#039;file.txt&#039;)&lt;br /&gt;
#data = data.read()&lt;br /&gt;
#print(data)&lt;br /&gt;
data = json.load(open(&#039;output.json&#039;,&#039;r&#039;))&lt;br /&gt;
data = str(data)&lt;br /&gt;
regex = r&amp;quot;\b[^.!?]+project[^a-z][^.!?]+[.!?]+&amp;quot;  #cherche toute les phrases contenant le mot project&lt;br /&gt;
regex2 =r&amp;quot;\[?\d\]|\\?n\\n|\\n|\\|\[\d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
variable = re.findall(regex, data)&lt;br /&gt;
t = 0&lt;br /&gt;
&lt;br /&gt;
with open(&#039;project.txt&#039;,&#039;w&#039;,encoding = &#039;utf-8&#039;) as file:&lt;br /&gt;
    for i in variable:&lt;br /&gt;
        t = t +1&lt;br /&gt;
        i = re.sub(regex2,&amp;quot;&amp;quot;,i)&lt;br /&gt;
        #i = i.encode(&#039;utf-8&#039;)&lt;br /&gt;
        #i = str(i)&lt;br /&gt;
        file.write(f&#039;{i}\n&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Un script pour compter chaque mot&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import string&lt;br /&gt;
import json&lt;br /&gt;
&lt;br /&gt;
data = json.load(open(&#039;output.json&#039;,&#039;r&#039;))&lt;br /&gt;
texte = &#039;&#039;.join(str(e) for e in data)&lt;br /&gt;
&lt;br /&gt;
words = {}&lt;br /&gt;
stopwords = [&amp;quot;the&amp;quot;,&amp;quot;in&amp;quot;,&amp;quot;a&amp;quot;,&amp;quot;at&amp;quot;,&amp;quot;for&amp;quot;,&amp;quot;it&amp;quot;,&amp;quot;of&amp;quot;,&amp;quot;is&amp;quot;,&amp;quot;in&amp;quot;,&amp;quot;by&amp;quot;,&amp;quot;to&amp;quot;,&amp;quot;and&amp;quot;,&amp;quot;was&amp;quot;,&amp;quot;on&amp;quot;,&amp;quot;be&amp;quot;,&amp;quot;this&amp;quot;,&amp;quot;an&amp;quot;,&amp;quot;but&amp;quot;,&amp;quot;that&amp;quot;,&amp;quot;as&amp;quot;,&amp;quot;he&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
texte = texte.lower()&lt;br /&gt;
texte = texte.translate(str.maketrans(&#039;&#039;, &#039;&#039;, string.punctuation))&lt;br /&gt;
txt = texte.split()&lt;br /&gt;
&lt;br /&gt;
for i in txt:&lt;br /&gt;
&lt;br /&gt;
    if i in stopwords:&lt;br /&gt;
        continue&lt;br /&gt;
&lt;br /&gt;
    if i not in words:&lt;br /&gt;
        words.update({i:1})&lt;br /&gt;
    &lt;br /&gt;
    else:&lt;br /&gt;
        words[i] = words[i]+1&lt;br /&gt;
        &lt;br /&gt;
newWords = dict(sorted(words.items(), key=lambda item: item[1], reverse=True))&lt;br /&gt;
#print(newWords)&lt;br /&gt;
&lt;br /&gt;
with open(&#039;file.txt&#039;, &#039;w&#039;) as file:&lt;br /&gt;
    for a in newWords:&lt;br /&gt;
        try:&lt;br /&gt;
            file.write(f&#039;{a} : {newWords[a]}\n&#039;)&lt;br /&gt;
        except:&lt;br /&gt;
            pass&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Le script pour récupérer le contenu sur le wiki&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#la librairie qui permet de se connecter au site&lt;br /&gt;
import mechanize&lt;br /&gt;
#la librairie qui permet d&#039;analyser la structure html&lt;br /&gt;
import lxml.html&lt;br /&gt;
#la librairie qui permet de sélectionner une info dans la structure html&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
import json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def getSrc(url):&lt;br /&gt;
    #1. télécharger la source html de la page url&lt;br /&gt;
    browser = mechanize.Browser()&lt;br /&gt;
    browser.addheaders = [(&#039;User-agent&#039;, &#039;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1&#039;)]&lt;br /&gt;
    browser.set_handle_robots(False)&lt;br /&gt;
 &lt;br /&gt;
    #problème https&lt;br /&gt;
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))&lt;br /&gt;
 &lt;br /&gt;
    data = browser.open(url, timeout=10)&lt;br /&gt;
 &lt;br /&gt;
    &#039;&#039;&#039;with open(&amp;quot;output.txt&amp;quot;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(str(data.read()))&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    #2. analyser la source et la transformer en structure html navigable&lt;br /&gt;
    source = data.read()&lt;br /&gt;
    html = lxml.html.fromstring(source)&lt;br /&gt;
    return html&lt;br /&gt;
&lt;br /&gt;
def getHtmlElements(html, selecteurCss):&lt;br /&gt;
    &lt;br /&gt;
    #3. viser l&#039;information qui nous intéresse&lt;br /&gt;
 &lt;br /&gt;
    #convertir mon sélecteur css en objet cssselect&lt;br /&gt;
    selecteurs = cssselect.parse(selecteurCss)&lt;br /&gt;
        #0&lt;br /&gt;
    #[objet cssselect]&lt;br /&gt;
 &lt;br /&gt;
    selecteur = selecteurs[0]&lt;br /&gt;
 &lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)&lt;br /&gt;
 &lt;br /&gt;
    resultats = html.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return resultats&lt;br /&gt;
    #print(resultats)&lt;br /&gt;
&lt;br /&gt;
def extractText(textTag):&lt;br /&gt;
    #print(textTag.text_content())&lt;br /&gt;
    elements = textTag.xpath(&amp;quot;.//h2/span[@class=&#039;mw-headline&#039;]|.//div[@class=&#039;mw-parser-output&#039;]/p&amp;quot;)&lt;br /&gt;
    article = &#039;&#039;&lt;br /&gt;
    for element in elements:&lt;br /&gt;
        article = article + element.text_content() + &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
    return article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siteUrl = &#039;https://www.lostmediawiki.com&#039;&lt;br /&gt;
start = True&lt;br /&gt;
&lt;br /&gt;
articlesLinks = []&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nextUrl = &#039;https://www.lostmediawiki.com/index.php?title=Category:Completely_lost_media&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
while nextUrl != False:&lt;br /&gt;
    print(&#039;######NEXT PAGE!############&#039;)&lt;br /&gt;
    print(&#039;#GOING TO&#039;+nextUrl)&lt;br /&gt;
&lt;br /&gt;
    src = getSrc(nextUrl)&lt;br /&gt;
    nextUrl = False&lt;br /&gt;
&lt;br /&gt;
    articlesLinksTags = getHtmlElements(src, &amp;quot;.mw-category-group a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for articleLinkTag in articlesLinksTags:&lt;br /&gt;
        #print(siteUrl+articleLinkTag.get(&#039;href&#039;))&lt;br /&gt;
        articlesLinks.append(siteUrl+articleLinkTag.get(&#039;href&#039;))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    nextPrevLinksTags = getHtmlElements(src, &#039;#mw-pages &amp;gt; a&#039;)&lt;br /&gt;
&lt;br /&gt;
    for nextPrevLinkTag in nextPrevLinksTags:&lt;br /&gt;
        print(nextPrevLinkTag.text_content())&lt;br /&gt;
        if nextPrevLinkTag.text_content() == &#039;next page&#039;:&lt;br /&gt;
            nextUrl = siteUrl+nextPrevLinkTag.get(&#039;href&#039;)&lt;br /&gt;
            break&lt;br /&gt;
    &lt;br /&gt;
    break&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print(articlesLinks)&lt;br /&gt;
&lt;br /&gt;
#[&lt;br /&gt;
# {&lt;br /&gt;
# &#039;title&#039;:&#039;&#039;,&lt;br /&gt;
# &#039;text&#039;:&#039;&#039;}&lt;br /&gt;
# ,&lt;br /&gt;
# {&lt;br /&gt;
# &#039;title&#039;:&#039;&#039;,&lt;br /&gt;
# &#039;text&#039;:&#039;&#039;}&lt;br /&gt;
# ]&lt;br /&gt;
&lt;br /&gt;
articles = []&lt;br /&gt;
counter = 0&lt;br /&gt;
for articleLink in articlesLinks:&lt;br /&gt;
    article = {&#039;title&#039;:&#039;&#039;, &#039;text&#039;:&#039;&#039;}&lt;br /&gt;
&lt;br /&gt;
    src = getSrc(articleLink)&lt;br /&gt;
&lt;br /&gt;
    titleTags = getHtmlElements(src, &#039;h1#firstHeading&#039;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        article[&#039;title&#039;] = titleTags[0].text_content()&lt;br /&gt;
    except:&lt;br /&gt;
        print(&amp;quot;erreur&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    textTag = getHtmlElements(src, &#039;.mw-parser-output&#039;)&lt;br /&gt;
&lt;br /&gt;
    article[&#039;text&#039;] = extractText(textTag[0])&lt;br /&gt;
&lt;br /&gt;
    articles.append(article)&lt;br /&gt;
&lt;br /&gt;
    counter += 1&lt;br /&gt;
    if(counter == 4):&lt;br /&gt;
        break&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print(articles)&lt;br /&gt;
&lt;br /&gt;
articlesJSON = json.dumps(articles)&lt;br /&gt;
&lt;br /&gt;
with open(&#039;output.json&#039;, &#039;w&#039;) as f:&lt;br /&gt;
    f.write(articlesJSON)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;/div&gt;</summary>
		<author><name>MathiasR</name></author>
	</entry>
	<entry>
		<id>https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4274</id>
		<title>Mathias</title>
		<link rel="alternate" type="text/html" href="https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4274"/>
		<updated>2023-02-24T11:04:49Z</updated>

		<summary type="html">&lt;p&gt;MathiasR : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;LA BRIQUE&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#la librairie qui permet de se connecter au site&lt;br /&gt;
import mechanize&lt;br /&gt;
#la librairie qui permet d&#039;analyser la structure html&lt;br /&gt;
import lxml.html&lt;br /&gt;
#la librairie qui permet de sélectionner une info dans la structure html&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
import json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def getSrc(url):&lt;br /&gt;
    #1. télécharger la source html de la page url&lt;br /&gt;
    browser = mechanize.Browser()&lt;br /&gt;
    browser.addheaders = [(&#039;User-agent&#039;, &#039;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1&#039;)]&lt;br /&gt;
    browser.set_handle_robots(False)&lt;br /&gt;
 &lt;br /&gt;
    #problème https&lt;br /&gt;
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))&lt;br /&gt;
 &lt;br /&gt;
    data = browser.open(url, timeout=10)&lt;br /&gt;
 &lt;br /&gt;
    &#039;&#039;&#039;with open(&amp;quot;output.txt&amp;quot;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(str(data.read()))&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    #2. analyser la source et la transformer en structure html navigable&lt;br /&gt;
    source = data.read()&lt;br /&gt;
    html = lxml.html.fromstring(source)&lt;br /&gt;
    return html&lt;br /&gt;
&lt;br /&gt;
def getHtmlElements(html, selecteurCss):&lt;br /&gt;
    &lt;br /&gt;
    #3. viser l&#039;information qui nous intéresse&lt;br /&gt;
 &lt;br /&gt;
    #convertir mon sélecteur css en objet cssselect&lt;br /&gt;
    selecteurs = cssselect.parse(selecteurCss)&lt;br /&gt;
        #0&lt;br /&gt;
    #[objet cssselect]&lt;br /&gt;
 &lt;br /&gt;
    selecteur = selecteurs[0]&lt;br /&gt;
 &lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)&lt;br /&gt;
 &lt;br /&gt;
    resultats = html.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return resultats&lt;br /&gt;
    #print(resultats)&lt;br /&gt;
&lt;br /&gt;
def extractText(textTag):&lt;br /&gt;
    #print(textTag.text_content())&lt;br /&gt;
    elements = textTag.xpath(&amp;quot;.//h2/span[@class=&#039;mw-headline&#039;]|.//div[@class=&#039;mw-parser-output&#039;]/p&amp;quot;)&lt;br /&gt;
    article = &#039;&#039;&lt;br /&gt;
    for element in elements:&lt;br /&gt;
        article = article + element.text_content() + &#039;\n&#039;&lt;br /&gt;
&lt;br /&gt;
    return article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siteUrl = &#039;https://www.lostmediawiki.com&#039;&lt;br /&gt;
start = True&lt;br /&gt;
&lt;br /&gt;
articlesLinks = []&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nextUrl = &#039;https://www.lostmediawiki.com/index.php?title=Category:Completely_lost_media&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
while nextUrl != False:&lt;br /&gt;
    print(&#039;######NEXT PAGE!############&#039;)&lt;br /&gt;
    print(&#039;#GOING TO&#039;+nextUrl)&lt;br /&gt;
&lt;br /&gt;
    src = getSrc(nextUrl)&lt;br /&gt;
    nextUrl = False&lt;br /&gt;
&lt;br /&gt;
    articlesLinksTags = getHtmlElements(src, &amp;quot;.mw-category-group a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    for articleLinkTag in articlesLinksTags:&lt;br /&gt;
        #print(siteUrl+articleLinkTag.get(&#039;href&#039;))&lt;br /&gt;
        articlesLinks.append(siteUrl+articleLinkTag.get(&#039;href&#039;))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    nextPrevLinksTags = getHtmlElements(src, &#039;#mw-pages &amp;gt; a&#039;)&lt;br /&gt;
&lt;br /&gt;
    for nextPrevLinkTag in nextPrevLinksTags:&lt;br /&gt;
        print(nextPrevLinkTag.text_content())&lt;br /&gt;
        if nextPrevLinkTag.text_content() == &#039;next page&#039;:&lt;br /&gt;
            nextUrl = siteUrl+nextPrevLinkTag.get(&#039;href&#039;)&lt;br /&gt;
            break&lt;br /&gt;
    &lt;br /&gt;
    break&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print(articlesLinks)&lt;br /&gt;
&lt;br /&gt;
#[&lt;br /&gt;
# {&lt;br /&gt;
# &#039;title&#039;:&#039;&#039;,&lt;br /&gt;
# &#039;text&#039;:&#039;&#039;}&lt;br /&gt;
# ,&lt;br /&gt;
# {&lt;br /&gt;
# &#039;title&#039;:&#039;&#039;,&lt;br /&gt;
# &#039;text&#039;:&#039;&#039;}&lt;br /&gt;
# ]&lt;br /&gt;
&lt;br /&gt;
articles = []&lt;br /&gt;
counter = 0&lt;br /&gt;
for articleLink in articlesLinks:&lt;br /&gt;
    article = {&#039;title&#039;:&#039;&#039;, &#039;text&#039;:&#039;&#039;}&lt;br /&gt;
&lt;br /&gt;
    src = getSrc(articleLink)&lt;br /&gt;
&lt;br /&gt;
    titleTags = getHtmlElements(src, &#039;h1#firstHeading&#039;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        article[&#039;title&#039;] = titleTags[0].text_content()&lt;br /&gt;
    except:&lt;br /&gt;
        print(&amp;quot;erreur&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    textTag = getHtmlElements(src, &#039;.mw-parser-output&#039;)&lt;br /&gt;
&lt;br /&gt;
    article[&#039;text&#039;] = extractText(textTag[0])&lt;br /&gt;
&lt;br /&gt;
    articles.append(article)&lt;br /&gt;
&lt;br /&gt;
    counter += 1&lt;br /&gt;
    if(counter == 4):&lt;br /&gt;
        break&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print(articles)&lt;br /&gt;
&lt;br /&gt;
articlesJSON = json.dumps(articles)&lt;br /&gt;
&lt;br /&gt;
with open(&#039;output.json&#039;, &#039;w&#039;) as f:&lt;br /&gt;
    f.write(articlesJSON)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;/div&gt;</summary>
		<author><name>MathiasR</name></author>
	</entry>
	<entry>
		<id>https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4016</id>
		<title>Mathias</title>
		<link rel="alternate" type="text/html" href="https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4016"/>
		<updated>2022-12-16T11:22:02Z</updated>

		<summary type="html">&lt;p&gt;MathiasR : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#la librairie qui permet de se connecter au site&lt;br /&gt;
import mechanize&lt;br /&gt;
#la librairie qui permet d&#039;analyser la structure html&lt;br /&gt;
import lxml.html&lt;br /&gt;
#la librairie qui permet de sélectionner une info dans la structure html&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
def getHtmlElements(url, selecteurCss):&lt;br /&gt;
    #1. télécharger la source html de la page url&lt;br /&gt;
    browser = mechanize.Browser()&lt;br /&gt;
    browser.addheaders = [(&#039;User-agent&#039;, &#039;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1&#039;)]&lt;br /&gt;
    browser.set_handle_robots(False)&lt;br /&gt;
 &lt;br /&gt;
    #problème https&lt;br /&gt;
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))&lt;br /&gt;
 &lt;br /&gt;
    data = browser.open(url, timeout=10)&lt;br /&gt;
 &lt;br /&gt;
    &#039;&#039;&#039;with open(&amp;quot;output.txt&amp;quot;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(str(data.read()))&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    #2. analyser la source et la transformer en structure html navigable&lt;br /&gt;
    source = data.read()&lt;br /&gt;
    html = lxml.html.fromstring(source)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    #3. viser l&#039;information qui nous intéresse&lt;br /&gt;
 &lt;br /&gt;
    #convertir mon sélecteur css en objet cssselect&lt;br /&gt;
    selecteurs = cssselect.parse(selecteurCss)&lt;br /&gt;
        #0&lt;br /&gt;
    #[objet cssselect]&lt;br /&gt;
 &lt;br /&gt;
    selecteur = selecteurs[0]&lt;br /&gt;
 &lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)&lt;br /&gt;
 &lt;br /&gt;
    resultats = html.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return resultats&lt;br /&gt;
    #print(resultats)&lt;br /&gt;
&lt;br /&gt;
goodLinks = []&lt;br /&gt;
&lt;br /&gt;
links = getHtmlElements(&#039;https://www.lostmediawiki.com/Article_listing&#039;, &amp;quot;h3 .mw-headline a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for link in links:&lt;br /&gt;
    goodLinks.append(&amp;quot;https://www.lostmediawiki.com&amp;quot;+link.get(&#039;href&#039;))&lt;br /&gt;
 &lt;br /&gt;
articles = []&lt;br /&gt;
#print(goodLinks)&lt;br /&gt;
&lt;br /&gt;
for goodLink in goodLinks:&lt;br /&gt;
    articleLinks = getHtmlElements(goodLink, &#039;.mw-parser-output ul li a&#039;)&lt;br /&gt;
    for articleLink in articleLinks:&lt;br /&gt;
        articles.append(&amp;quot;https://www.lostmediawiki.com&amp;quot;+articleLink.get(&#039;href&#039;))&lt;br /&gt;
&lt;br /&gt;
print(articles)&lt;br /&gt;
print(len(articles))&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;/div&gt;</summary>
		<author><name>MathiasR</name></author>
	</entry>
	<entry>
		<id>https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4014</id>
		<title>Mathias</title>
		<link rel="alternate" type="text/html" href="https://designnumerique.be/w/index.php?title=Mathias&amp;diff=4014"/>
		<updated>2022-12-16T11:21:02Z</updated>

		<summary type="html">&lt;p&gt;MathiasR : Page créée avec « &amp;lt;syntaxhighlight lang = &amp;quot;python&amp;quot;&amp;gt; #la librairie qui permet de se connecter au site import mechanize #la librairie qui permet d&amp;#039;analyser la structure html import lxml.html... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang = &amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#la librairie qui permet de se connecter au site&lt;br /&gt;
import mechanize&lt;br /&gt;
#la librairie qui permet d&#039;analyser la structure html&lt;br /&gt;
import lxml.html&lt;br /&gt;
#la librairie qui permet de sélectionner une info dans la structure html&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
def getHtmlElements(url, selecteurCss):&lt;br /&gt;
    #1. télécharger la source html de la page url&lt;br /&gt;
    browser = mechanize.Browser()&lt;br /&gt;
    browser.addheaders = [(&#039;User-agent&#039;, &#039;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1&#039;)]&lt;br /&gt;
    browser.set_handle_robots(False)&lt;br /&gt;
 &lt;br /&gt;
    #problème https&lt;br /&gt;
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))&lt;br /&gt;
 &lt;br /&gt;
    data = browser.open(url, timeout=10)&lt;br /&gt;
 &lt;br /&gt;
    &#039;&#039;&#039;with open(&amp;quot;output.txt&amp;quot;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(str(data.read()))&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    #2. analyser la source et la transformer en structure html navigable&lt;br /&gt;
    source = data.read()&lt;br /&gt;
    html = lxml.html.fromstring(source)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    #3. viser l&#039;information qui nous intéresse&lt;br /&gt;
 &lt;br /&gt;
    #convertir mon sélecteur css en objet cssselect&lt;br /&gt;
    selecteurs = cssselect.parse(selecteurCss)&lt;br /&gt;
        #0&lt;br /&gt;
    #[objet cssselect]&lt;br /&gt;
 &lt;br /&gt;
    selecteur = selecteurs[0]&lt;br /&gt;
 &lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)&lt;br /&gt;
 &lt;br /&gt;
    resultats = html.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return resultats&lt;br /&gt;
    #print(resultats)&lt;br /&gt;
&lt;br /&gt;
goodLinks = []&lt;br /&gt;
&lt;br /&gt;
links = getHtmlElements(&#039;https://www.lostmediawiki.com/Article_listing&#039;, &amp;quot;h3 .mw-headline a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for link in links:&lt;br /&gt;
    goodLinks.append(&amp;quot;https://www.lostmediawiki.com&amp;quot;+link.get(&#039;href&#039;))&lt;br /&gt;
 &lt;br /&gt;
articles = []&lt;br /&gt;
#print(goodLinks)&lt;br /&gt;
&lt;br /&gt;
for goodLink in goodLinks:&lt;br /&gt;
    articleLinks = getHtmlElements(goodLink, &#039;.mw-parser-output ul li a&#039;)&lt;br /&gt;
    for articleLink in articleLinks:&lt;br /&gt;
        articles.append(&amp;quot;https://www.lostmediawiki.com&amp;quot;+articleLink.get(&#039;href&#039;))&lt;br /&gt;
&lt;br /&gt;
print(articles)&lt;br /&gt;
print(len(articles))&lt;br /&gt;
&amp;lt;/syntaxhighight&amp;gt;&lt;/div&gt;</summary>
		<author><name>MathiasR</name></author>
	</entry>
	<entry>
		<id>https://designnumerique.be/w/index.php?title=B2-B3_2022-2023&amp;diff=3882</id>
		<title>B2-B3 2022-2023</title>
		<link rel="alternate" type="text/html" href="https://designnumerique.be/w/index.php?title=B2-B3_2022-2023&amp;diff=3882"/>
		<updated>2022-09-30T08:23:09Z</updated>

		<summary type="html">&lt;p&gt;MathiasR : /* Pages des étudiant.e.s */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pages des étudiant.e.s =&lt;br /&gt;
[[Ma page]]&lt;br /&gt;
&lt;br /&gt;
[[Clément]]&lt;br /&gt;
&lt;br /&gt;
[[Mathias]]&lt;br /&gt;
&lt;br /&gt;
= Sessions =&lt;br /&gt;
&lt;br /&gt;
=== 23 septembre 2022: Présentation du cours ===&lt;br /&gt;
&lt;br /&gt;
* Le design numérique à l&#039;ERG, contexte d&#039;existence de l&#039;orientation&lt;br /&gt;
* Ce qui nous occupe : pratiques du design, usages, systèmes, protocoles, interfaces, outils, ...&lt;br /&gt;
* Structure du cours : trois projets, place de la documentation, outils de publication.&lt;br /&gt;
* Le web et ses technologies au centre du cours en B2-B3.&lt;br /&gt;
* La place que l&#039;on donne à la technique et à son apprentissage. Discussion collective.&lt;br /&gt;
* Présentation du premier projet : empêcher, contraindre, designer.&lt;/div&gt;</summary>
		<author><name>MathiasR</name></author>
	</entry>
</feed>