<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://curlybraces.be/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LeaLea</id>
	<title>{} - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://curlybraces.be/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LeaLea"/>
	<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/Sp%C3%A9cial:Contributions/LeaLea"/>
	<updated>2026-05-11T00:09:21Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.35.10</generator>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=5029</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=5029"/>
		<updated>2021-04-25T20:38:37Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Q2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 // travail réalisé avec Mondher ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== les selecteurs == &lt;br /&gt;
&lt;br /&gt;
Nous avons cherché les sélecteurs qui nous intéressait pour les inclure dans le code.&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : time.pubdate.updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lecho.be &lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time classe=“js-timeToday” datetime // span.js-timeToday-time&lt;br /&gt;
date modification : itemprop &lt;br /&gt;
&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time datetime &lt;br /&gt;
date de modification : time datetime&lt;br /&gt;
&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
titre : h1.entry-title&lt;br /&gt;
date : time.entry-date.updated.td-module-date &lt;br /&gt;
date de modififaction datetime &lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 Span ContentHead&lt;br /&gt;
date : article time&lt;br /&gt;
&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article time &lt;br /&gt;
date de modification : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1, article h3, article h2&lt;br /&gt;
date : article FullDateTime&lt;br /&gt;
&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h3, article h1, article h2&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
&lt;br /&gt;
titre: article h2, article h1, article h3&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : div class=“datetime”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 article titre &lt;br /&gt;
date : article metaDate&lt;br /&gt;
&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date publication : div class=“date”&lt;br /&gt;
date de modification : div class=“date”&lt;br /&gt;
&lt;br /&gt;
http://www.agefi.fr&lt;br /&gt;
&lt;br /&gt;
titre : h1 class=“node_title title title—xl”&lt;br /&gt;
date : span class=“node_date node_infos__item”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
titre : div class=“ekk-article-title”&lt;br /&gt;
date : span class=“date-display-single”&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
date: div.font_xs.color_grey.font_tertiary&lt;br /&gt;
&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
http://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p&lt;br /&gt;
&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p.post-meta (récupérer .text et pas .text_content()&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date de création : span class=“separator”&lt;br /&gt;
date de publication : span class=“separator”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données == &lt;br /&gt;
&lt;br /&gt;
un exemple de données que l&amp;#039;on a réussit à obtenir avec le terminal. Malheureusement comme le précise Mondher sur sa page, nous n&amp;#039;avons pas réussi à les récupérer dans phpmyadmin. Certains sélecteurs étaient également faux. Nous n&amp;#039;avons pas eu le temps de finir ce projet et de le peaufiner.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:terminal (dragged).jpeg]]&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:1codeleamondher.jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2codeleamondher.jpeg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=5028</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=5028"/>
		<updated>2021-04-25T20:38:07Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== les selecteurs == &lt;br /&gt;
&lt;br /&gt;
Nous avons cherché les sélecteurs qui nous intéressait pour les inclure dans le code.&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : time.pubdate.updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lecho.be &lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time classe=“js-timeToday” datetime // span.js-timeToday-time&lt;br /&gt;
date modification : itemprop &lt;br /&gt;
&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time datetime &lt;br /&gt;
date de modification : time datetime&lt;br /&gt;
&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
titre : h1.entry-title&lt;br /&gt;
date : time.entry-date.updated.td-module-date &lt;br /&gt;
date de modififaction datetime &lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 Span ContentHead&lt;br /&gt;
date : article time&lt;br /&gt;
&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article time &lt;br /&gt;
date de modification : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1, article h3, article h2&lt;br /&gt;
date : article FullDateTime&lt;br /&gt;
&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h3, article h1, article h2&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
&lt;br /&gt;
titre: article h2, article h1, article h3&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : div class=“datetime”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 article titre &lt;br /&gt;
date : article metaDate&lt;br /&gt;
&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date publication : div class=“date”&lt;br /&gt;
date de modification : div class=“date”&lt;br /&gt;
&lt;br /&gt;
http://www.agefi.fr&lt;br /&gt;
&lt;br /&gt;
titre : h1 class=“node_title title title—xl”&lt;br /&gt;
date : span class=“node_date node_infos__item”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
titre : div class=“ekk-article-title”&lt;br /&gt;
date : span class=“date-display-single”&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
date: div.font_xs.color_grey.font_tertiary&lt;br /&gt;
&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
http://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p&lt;br /&gt;
&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p.post-meta (récupérer .text et pas .text_content()&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date de création : span class=“separator”&lt;br /&gt;
date de publication : span class=“separator”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données == &lt;br /&gt;
&lt;br /&gt;
un exemple de données que l&amp;#039;on a réussit à obtenir avec le terminal. Malheureusement comme le précise Mondher sur sa page, nous n&amp;#039;avons pas réussi à les récupérer dans phpmyadmin. Certains sélecteurs étaient également faux. Nous n&amp;#039;avons pas eu le temps de finir ce projet et de le peaufiner.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:terminal (dragged).jpeg]]&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:1codeleamondher.jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2codeleamondher.jpeg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=5027</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=5027"/>
		<updated>2021-04-25T20:37:11Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== les selecteurs == &lt;br /&gt;
&lt;br /&gt;
Nous avons cherché les sélecteurs qui nous intéressait pour les inclure dans le code.&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : time.pubdate.updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lecho.be &lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time classe=“js-timeToday” datetime // span.js-timeToday-time&lt;br /&gt;
date modification : itemprop &lt;br /&gt;
&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time datetime &lt;br /&gt;
date de modification : time datetime&lt;br /&gt;
&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
titre : h1.entry-title&lt;br /&gt;
date : time.entry-date.updated.td-module-date &lt;br /&gt;
date de modififaction datetime &lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 Span ContentHead&lt;br /&gt;
date : article time&lt;br /&gt;
&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article time &lt;br /&gt;
date de modification : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1, article h3, article h2&lt;br /&gt;
date : article FullDateTime&lt;br /&gt;
&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h3, article h1, article h2&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
&lt;br /&gt;
titre: article h2, article h1, article h3&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : div class=“datetime”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 article titre &lt;br /&gt;
date : article metaDate&lt;br /&gt;
&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date publication : div class=“date”&lt;br /&gt;
date de modification : div class=“date”&lt;br /&gt;
&lt;br /&gt;
http://www.agefi.fr&lt;br /&gt;
&lt;br /&gt;
titre : h1 class=“node_title title title—xl”&lt;br /&gt;
date : span class=“node_date node_infos__item”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
titre : div class=“ekk-article-title”&lt;br /&gt;
date : span class=“date-display-single”&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
date: div.font_xs.color_grey.font_tertiary&lt;br /&gt;
&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
http://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p&lt;br /&gt;
&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p.post-meta (récupérer .text et pas .text_content()&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date de création : span class=“separator”&lt;br /&gt;
date de publication : span class=“separator”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données == &lt;br /&gt;
&lt;br /&gt;
un exemple de données que l&amp;#039;on a réussit à obtenir avec le terminal. Malheureusement comme le précise Mondher sur sa page, nous n&amp;#039;avons pas réussi à les récupérer dans phpmyadmin.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:terminal (dragged).jpeg]]&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:1codeleamondher.jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2codeleamondher.jpeg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Terminal_(dragged).jpeg&amp;diff=4967</id>
		<title>Fichier:Terminal (dragged).jpeg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Terminal_(dragged).jpeg&amp;diff=4967"/>
		<updated>2021-04-25T15:55:25Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4966</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4966"/>
		<updated>2021-04-25T15:54:00Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* CODE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== les selecteurs == &lt;br /&gt;
&lt;br /&gt;
Nous avons cherché les sélecteurs qui nous intéressait pour les inclure dans le code.&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : time.pubdate.updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lecho.be &lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time classe=“js-timeToday” datetime // span.js-timeToday-time&lt;br /&gt;
date modification : itemprop &lt;br /&gt;
&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time datetime &lt;br /&gt;
date de modification : time datetime&lt;br /&gt;
&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
titre : h1.entry-title&lt;br /&gt;
date : time.entry-date.updated.td-module-date &lt;br /&gt;
date de modififaction datetime &lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 Span ContentHead&lt;br /&gt;
date : article time&lt;br /&gt;
&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article time &lt;br /&gt;
date de modification : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1, article h3, article h2&lt;br /&gt;
date : article FullDateTime&lt;br /&gt;
&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h3, article h1, article h2&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
&lt;br /&gt;
titre: article h2, article h1, article h3&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : div class=“datetime”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 article titre &lt;br /&gt;
date : article metaDate&lt;br /&gt;
&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date publication : div class=“date”&lt;br /&gt;
date de modification : div class=“date”&lt;br /&gt;
&lt;br /&gt;
http://www.agefi.fr&lt;br /&gt;
&lt;br /&gt;
titre : h1 class=“node_title title title—xl”&lt;br /&gt;
date : span class=“node_date node_infos__item”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
titre : div class=“ekk-article-title”&lt;br /&gt;
date : span class=“date-display-single”&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
date: div.font_xs.color_grey.font_tertiary&lt;br /&gt;
&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
http://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p&lt;br /&gt;
&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p.post-meta (récupérer .text et pas .text_content()&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date de création : span class=“separator”&lt;br /&gt;
date de publication : span class=“separator”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Données == &lt;br /&gt;
&lt;br /&gt;
un exemple de données que l&amp;#039;on a réussit à obtenir. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:terminal (dragged).jpeg]]&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:1codeleamondher.jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2codeleamondher.jpeg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4965</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4965"/>
		<updated>2021-04-25T15:49:16Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* CODE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== les selecteurs == &lt;br /&gt;
&lt;br /&gt;
Nous avons cherché les sélecteurs qui nous intéressait pour les inclure dans le code.&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : time.pubdate.updated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lecho.be &lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time classe=“js-timeToday” datetime // span.js-timeToday-time&lt;br /&gt;
date modification : itemprop &lt;br /&gt;
&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : time datetime &lt;br /&gt;
date de modification : time datetime&lt;br /&gt;
&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
titre : h1.entry-title&lt;br /&gt;
date : time.entry-date.updated.td-module-date &lt;br /&gt;
date de modififaction datetime &lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 Span ContentHead&lt;br /&gt;
date : article time&lt;br /&gt;
&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article time &lt;br /&gt;
date de modification : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h1, article h3, article h2&lt;br /&gt;
date : article FullDateTime&lt;br /&gt;
&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
&lt;br /&gt;
titre : article h3, article h1, article h2&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
&lt;br /&gt;
titre: article h2, article h1, article h3&lt;br /&gt;
date : article datetime&lt;br /&gt;
&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date : div class=“datetime”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1 article titre &lt;br /&gt;
date : article metaDate&lt;br /&gt;
&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
&lt;br /&gt;
titre : h1&lt;br /&gt;
date publication : div class=“date”&lt;br /&gt;
date de modification : div class=“date”&lt;br /&gt;
&lt;br /&gt;
http://www.agefi.fr&lt;br /&gt;
&lt;br /&gt;
titre : h1 class=“node_title title title—xl”&lt;br /&gt;
date : span class=“node_date node_infos__item”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
titre : div class=“ekk-article-title”&lt;br /&gt;
date : span class=“date-display-single”&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
date: div.font_xs.color_grey.font_tertiary&lt;br /&gt;
&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
http://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p&lt;br /&gt;
&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date : p.post-meta (récupérer .text et pas .text_content()&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
titre : h1, h2, h3&lt;br /&gt;
date de création : span class=“separator”&lt;br /&gt;
date de publication : span class=“separator”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:1codeleamondher.jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2codeleamondher.jpeg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:2codeleamondher.jpeg&amp;diff=4964</id>
		<title>Fichier:2codeleamondher.jpeg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:2codeleamondher.jpeg&amp;diff=4964"/>
		<updated>2021-04-25T15:44:38Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:1codeleamondher.jpeg&amp;diff=4963</id>
		<title>Fichier:1codeleamondher.jpeg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:1codeleamondher.jpeg&amp;diff=4963"/>
		<updated>2021-04-25T15:44:15Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4962</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4962"/>
		<updated>2021-04-25T15:43:43Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* La base de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:1codeleamondher.jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2codeleamondher.jpeg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4961</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4961"/>
		<updated>2021-04-25T15:41:55Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* La base de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:1.jpeg]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2.jpeg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4960</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4960"/>
		<updated>2021-04-25T15:40:05Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Q2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
== CODE == &lt;br /&gt;
&lt;br /&gt;
Réalisation d&amp;#039;un code pour récupérer des données et les insérer dans une base de données&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La base de données == &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-04-25 at 17.39.29]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4959</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4959"/>
		<updated>2021-04-25T15:36:17Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
code : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:12,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
  &lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4957</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4957"/>
		<updated>2021-04-25T15:33:31Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Q2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]]  à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;br /&gt;
&lt;br /&gt;
code : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;import time&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
import ssl&lt;br /&gt;
import os&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
import mysql.connector as mysql&lt;br /&gt;
 &lt;br /&gt;
def getSrcFromURL(url):&lt;br /&gt;
    data = br.open(url)&lt;br /&gt;
 &lt;br /&gt;
    rawdata = data.read()&lt;br /&gt;
    unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
    src = lh.fromstring(unicode)&lt;br /&gt;
    return src&lt;br /&gt;
 &lt;br /&gt;
def getResults(src, selecteurs):&lt;br /&gt;
    results = []&lt;br /&gt;
    cssSelectSelecteurs = cssselect.parse(selecteurs)&lt;br /&gt;
    for cssSelectSelecteur in cssSelectSelecteurs:&lt;br /&gt;
        chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(cssSelectSelecteur, translate_pseudo_elements=True)&lt;br /&gt;
        results = results + src.xpath(chemin_xpath)&lt;br /&gt;
 &lt;br /&gt;
    return results&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#initialisation de l&amp;#039;objet db, interface avec la base de données mysql&lt;br /&gt;
db = mysql.connect(&lt;br /&gt;
    host = &amp;quot;localhost&amp;quot;,&lt;br /&gt;
    port = &amp;quot;8889&amp;quot;,&lt;br /&gt;
    user = &amp;quot;root&amp;quot;,&lt;br /&gt;
    passwd = &amp;quot;root&amp;quot;,&lt;br /&gt;
    database = &amp;quot;indice_popularité_termes&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
 &lt;br /&gt;
def getData(htmlElements, operation):&lt;br /&gt;
    data = []&lt;br /&gt;
    for element in htmlElements:&lt;br /&gt;
        if operation == &amp;#039;get_href&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
        elif operation == &amp;#039;get_content_date&amp;#039;:&lt;br /&gt;
            #2021-04-19T10:09:10+00:00&lt;br /&gt;
            #2021-04-19 10:09:10&lt;br /&gt;
            date = element.get(&amp;#039;content&amp;#039;)&lt;br /&gt;
            date = date.replace(&amp;#039;T&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
            date = date[0:19]&lt;br /&gt;
            data.append(date)&lt;br /&gt;
        elif operation == &amp;#039;text_content&amp;#039;:&lt;br /&gt;
            data.append(element.text_content())&lt;br /&gt;
        elif operation == &amp;#039;get_datetime&amp;#039;:&lt;br /&gt;
            data.append(element.get(&amp;#039;datetime&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
    return data&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
selecteurs = [&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lenouvelliste.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.arcinfo.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:9,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h1 a, h3 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.heidi.news&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:10,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article datetime&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;#039;url&amp;#039;:&amp;#039;https://www.lacote.ch&amp;#039;,&lt;br /&gt;
        &amp;#039;source_id&amp;#039;:11,&lt;br /&gt;
        &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;h3 a, h2 a&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
        &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
            {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
        ]&lt;br /&gt;
 &lt;br /&gt;
    },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lecourrier.ch&amp;#039;,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.c-Card-permalink&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article metaDate&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    #  {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://lemonde.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;source_id&amp;#039;:1,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;div.article a&amp;#039;,&amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1.article__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;meta[property=&amp;quot;og:article:published_time&amp;quot;]&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_content_date&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.lefigaro.fr&amp;#039;,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.ensemble__link, a.fig-profile__link, fig-ensemble__link, a.fig-ensemble__first-article-link&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[ &lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;span.fig-content-metas__pub-date fig-content-metas__pub-date--hide-small&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},  &lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
    # {&lt;br /&gt;
    #     &amp;#039;url&amp;#039;:&amp;#039;https://www.la-croix.com&amp;#039;,&lt;br /&gt;
    #     &amp;#039;selecteur_links&amp;#039;:{&amp;#039;name&amp;#039;:&amp;#039;article_link&amp;#039;, &amp;#039;selecteur&amp;#039;:&amp;#039;a.block-item__title&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;get_href&amp;#039;},&lt;br /&gt;
    #     &amp;#039;selecteurs_article&amp;#039;:[&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;titre&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;article h1&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #         {&amp;#039;name&amp;#039;: &amp;#039;date_pub&amp;#039;, &amp;#039;selecteur&amp;#039;: &amp;#039;div .font_xs color_grey margin-xxs-right font_tertiary&amp;#039;, &amp;#039;operation&amp;#039;:&amp;#039;text_content&amp;#039;},&lt;br /&gt;
    #     ]&lt;br /&gt;
 &lt;br /&gt;
    # },&lt;br /&gt;
]&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
#0: pour chaque source dans le tableau sélecteurs&lt;br /&gt;
for source in selecteurs:&lt;br /&gt;
    #0:récupérer l&amp;#039;id de la source dans la base de données&lt;br /&gt;
    sourceId = source[&amp;#039;source_id&amp;#039;]&lt;br /&gt;
    #1: récupérer la première page de la source&lt;br /&gt;
    premierePage = getSrcFromURL(source[&amp;#039;url&amp;#039;])&lt;br /&gt;
    #2: appliquer le sélecteur contenu dans &amp;#039;selecteur_links&amp;#039;&lt;br /&gt;
    liensArticles = getResults(premierePage, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
    #3: appliquer l&amp;#039;opération sur chaque élément récupéré -&amp;gt; url articles&lt;br /&gt;
    urlsArticles = getData(liensArticles, source[&amp;#039;selecteur_links&amp;#039;][&amp;#039;operation&amp;#039;])&lt;br /&gt;
    #4: pour chaque url article:&lt;br /&gt;
    for urlArticle in urlsArticles:&lt;br /&gt;
        #5: checker si l&amp;#039;url de l&amp;#039;article se trouve déjà dans la table article de la db. si il y est, skipper le reste des opérations&lt;br /&gt;
        query = &amp;quot;SELECT * FROM article WHERE url=&amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
        alreadyInDB = False&lt;br /&gt;
        with db.cursor() as cursor:&lt;br /&gt;
            cursor.execute(query)&lt;br /&gt;
            result = cursor.fetchall()&lt;br /&gt;
            if len(result) &amp;gt; 0:&lt;br /&gt;
                alreadyInDB = True&lt;br /&gt;
 &lt;br /&gt;
        if(alreadyInDB == True):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #5bis: récupérer la source de la page désignée par l&amp;#039;url&lt;br /&gt;
        # print(urlArticle)&lt;br /&gt;
        sourceUrl = getSrcFromURL(urlArticle)&lt;br /&gt;
        print(sourceUrl)&lt;br /&gt;
        print(urlArticle)&lt;br /&gt;
        # print(sourceUrl)&lt;br /&gt;
        # #6: déclarer un tableau vide qui contiendra les éléments à insérer dans la db -&amp;gt; dataArticle&lt;br /&gt;
        dataArticle = []&lt;br /&gt;
        # #7: pour chaque sélecteur contenu dans &amp;quot;selecteurs_article&amp;quot;:&lt;br /&gt;
        for selecteur_article in source[&amp;#039;selecteurs_article&amp;#039;]:&lt;br /&gt;
        #     #8: appliquer le sélecteur article sur la source de la page&lt;br /&gt;
            applySelector = getResults(sourceUrl, selecteur_article[&amp;#039;selecteur&amp;#039;])&lt;br /&gt;
            # print(applySelector)&lt;br /&gt;
        #     #9: appliquer l&amp;#039;opération sur l&amp;#039;élément récupéré -&amp;gt; donnée&lt;br /&gt;
            operateelement = getData(applySelector, selecteur_article[&amp;#039;operation&amp;#039;])&lt;br /&gt;
            #10: ajouter la donnée au tableau dataArticle&lt;br /&gt;
            dataArticle.append(operateelement)&lt;br /&gt;
        print(dataArticle)&lt;br /&gt;
 &lt;br /&gt;
        if(len(dataArticle[0]) == 0):&lt;br /&gt;
            continue&lt;br /&gt;
 &lt;br /&gt;
        #[[&amp;#039;Les Etats-Unis et la Chine «\xa0s’engagent à coopérer\xa0» sur la crise climatique&amp;#039;], [&amp;#039;2021-04-18 02:33:09&amp;#039;]]&lt;br /&gt;
        # #11: insérer le tableau dans la base de données&lt;br /&gt;
        query = &amp;quot;INSERT INTO article (titre, date_crea, url, source_id) VALUES (&amp;#039;&amp;quot;+dataArticle[0][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+dataArticle[1][0]+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+urlArticle+&amp;quot;&amp;#039;, &amp;#039;&amp;quot;+str(sourceId)+&amp;quot;&amp;#039;)&amp;quot;&lt;br /&gt;
        print(query)&lt;br /&gt;
        # query = &amp;quot;INSERT INTO article (titre, date_crea, source_id) VALUES (&amp;#039;%s&amp;#039;, &amp;#039;%s&amp;#039;, 1)&amp;quot; % (dataArticle[0], dataArticle[1])&lt;br /&gt;
 &lt;br /&gt;
        cursor = db.cursor()&lt;br /&gt;
        cursor.execute(query)&lt;br /&gt;
        db.commit()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4955</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4955"/>
		<updated>2021-04-25T15:30:43Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Q2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]] &lt;br /&gt;
&lt;br /&gt;
Travail réalisé à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique :&lt;br /&gt;
&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
&lt;br /&gt;
Suisse :&lt;br /&gt;
&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France :&lt;br /&gt;
&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg : &lt;br /&gt;
&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco :&lt;br /&gt;
&lt;br /&gt;
https://www.monacomatin.mc&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4954</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4954"/>
		<updated>2021-04-25T15:30:05Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
&lt;br /&gt;
Travail réalisé en binôme avec [[Mondher]] &lt;br /&gt;
&lt;br /&gt;
Travail réalisé à partir de ces journaux : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Belgique&lt;br /&gt;
https://www.lesoir.be&lt;br /&gt;
https://www.lecho.be&lt;br /&gt;
https://www.lalibre.be&lt;br /&gt;
https://fr.metrotime.be&lt;br /&gt;
Suisse&lt;br /&gt;
https://www.24heures.ch&lt;br /&gt;
https://www.lematin.ch&lt;br /&gt;
https://www.lenouvelliste.ch&lt;br /&gt;
https://www.tdg.ch&lt;br /&gt;
https://www.arcinfo.ch&lt;br /&gt;
https://www.heidi.news&lt;br /&gt;
https://www.lacote.ch&lt;br /&gt;
https://lecourrier.ch&lt;br /&gt;
https://www.letemps.ch&lt;br /&gt;
https://www.agefi.fr&lt;br /&gt;
https://www.lqj.ch&lt;br /&gt;
&lt;br /&gt;
France&lt;br /&gt;
https://www.lefigaro.fr&lt;br /&gt;
https://www.lemonde.fr&lt;br /&gt;
https://www.lesechos.fr&lt;br /&gt;
https://www.leparisien.fr&lt;br /&gt;
https://www.liberation.fr&lt;br /&gt;
https://www.la-croix.com&lt;br /&gt;
https://www.lequipe.fr&lt;br /&gt;
https://www.dhnet.be&lt;br /&gt;
&lt;br /&gt;
Luxembourg&lt;br /&gt;
https://www.lessentiel.lu/fr/luxembourg/&lt;br /&gt;
https://lequotidien.lu&lt;br /&gt;
&lt;br /&gt;
Monaco&lt;br /&gt;
https://www.monacomatin.mc&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::Code-2020-2&amp;diff=4751</id>
		<title>ERG::Code-2020-2</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::Code-2020-2&amp;diff=4751"/>
		<updated>2021-02-11T10:53:30Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Sessions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Ce cours est destiné aux étudiant.e.s de BAC3. Cette année, nous nous concentrons sur les bases de données, définies comme &amp;quot;une collection structurée d&amp;#039;éléments sur laquelle l&amp;#039;utilisateur.trice peut effectuer une série d&amp;#039;opérations: voir, naviguer, chercher&amp;quot; (Lev Manovich, &amp;#039;&amp;#039;Le langage des Nouveaux Médias&amp;#039;&amp;#039;). &lt;br /&gt;
&lt;br /&gt;
==Sessions==&lt;br /&gt;
===11 février 2021===&lt;br /&gt;
&lt;br /&gt;
Liste des sources: sites d&amp;#039;actualités, Suisse Romande&lt;br /&gt;
* 24 heures (Canton de Vaud)&lt;br /&gt;
* Tribune de Genève (Canton de Genève)&lt;br /&gt;
* Le Temps (Canton de Genève)&lt;br /&gt;
* La Liberté (Canton de Fribourg)&lt;br /&gt;
* La Gruyère (Canton de Fribourg)&lt;br /&gt;
* Le Nouvelliste (Canton du Valais)&lt;br /&gt;
* Arc Info (Canton de Neuchâtel)&lt;br /&gt;
* Le Journal du Jura (partie francophone du Canton de Berne)&lt;br /&gt;
* Le Quotidien jurassien (Canton du Jura)&lt;br /&gt;
* La Côte (Région lémanique)&lt;br /&gt;
* La Région (Région Nord-vaudoise)&lt;br /&gt;
* Le Courrier (Romandie)&lt;br /&gt;
* Le Matin (Romandie)&lt;br /&gt;
* 20 Minutes (Romandie)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La Gruyère  : https://www.lagruyere.ch/2021/02/%C2%AB-nous-demand%C3%A9-de-nous-endetter-pour-la-soci%C3%A9t%C3%A9%C2%BB.html&lt;br /&gt;
&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1, h2, article h3, article p, article time&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
Le Nouvelliste : https://www.lenouvelliste.ch/articles/monde/reseaux-sociaux-twitter-ne-laissera-pas-revenir-donald-trump-1043625&lt;br /&gt;
&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1, h2, article h3, article p, article time&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants à partir d&amp;#039;une page d&amp;#039;article de lecourrier.ch&lt;br /&gt;
#article h1, article h2, article h3, article p et article time &lt;br /&gt;
 &lt;br /&gt;
import mechanize&lt;br /&gt;
 &lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
 &lt;br /&gt;
import cssselect&lt;br /&gt;
 &lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
data = br.open(&amp;#039;https://lecourrier.ch/2021/02/10/morten-gisselbaek-le-candidat-de-la-decroissance/&amp;#039;, timeout=10.0)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#on convertit un sélecteur css en objets de type &amp;quot;cssselector&amp;quot;&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1.c-Article-titre, article .c-Article-chapeau, article .c-Article-metaDate, article c-Article-metaJournaliste, article .c-Article-texte&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
selecteursImages = cssselect.parse(&amp;#039;article .c-Article-imageFeatured img&amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
for selecteur in selecteurs:&lt;br /&gt;
    print(selecteur)&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur, translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    for resultat in resultats:&lt;br /&gt;
        print(resultat.text_content())&lt;br /&gt;
&lt;br /&gt;
for selecteur in selecteursImages:&lt;br /&gt;
    print(selecteur)&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur, translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    for resultat in resultats:&lt;br /&gt;
        imageUrl = &amp;#039;https://lecourrier.ch&amp;#039;+resultat.get(&amp;#039;src&amp;#039;)&lt;br /&gt;
        print(&amp;#039;downloading&amp;#039;+imageUrl)&lt;br /&gt;
        filename = &amp;#039;test.jpg&amp;#039;&lt;br /&gt;
        data = br.open(imageUrl).read()&lt;br /&gt;
        &lt;br /&gt;
        save = open(filename, &amp;#039;wb&amp;#039;)&lt;br /&gt;
        save.write(data)&lt;br /&gt;
        save.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===17 décembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def getInfos(src, selecteurcss):&lt;br /&gt;
    selecteur = cssselect.parse(selecteurcss)&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur[0], translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    return resultats&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#039;Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/1&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/1&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/1&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/2&lt;br /&gt;
&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
thumbnails = getInfos(src, &amp;#039;span.thumbnail_url&amp;#039;)&lt;br /&gt;
descriptions = getInfos(src, &amp;#039;span.asset-descr&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===10 décembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
#on part de l&amp;#039;url de la thumbnail: https://regards.monuments-nationaux.fr//thumbnails/00000000100/gmw20_0194.thw&lt;br /&gt;
#et l&amp;#039;url du lien pour le zoom: fr/asset/id/99816/tour-de-la-lanterne-lanterne-vitraux/fromSearch/1/initiatorAction/metadataInternalLink/mosaicCount/2877/thumbIndex/0&lt;br /&gt;
#on veut arriver à ça: https://regards.monuments-nationaux.fr/fr/asset/assetFile/id/99816/size/3/type/1/filename/CMN_gmw20_0194&lt;br /&gt;
&lt;br /&gt;
thumbnailURL = input(&amp;#039;Entrer l\&amp;#039;url de la thumbnail&amp;#039;)&lt;br /&gt;
linkURL = input(&amp;#039;Entrer l\&amp;#039;url du lien&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
#thumbnailURL = &amp;#039;https://regards.monuments-nationaux.fr//thumbnails/00000000100/gmw20_0194.thw&amp;#039;&lt;br /&gt;
#linkURL = &amp;#039;fr/asset/id/99816/tour-de-la-lanterne-lanterne-vitraux/fromSearch/1/initiatorAction/metadataInternalLink/mosaicCount/2877/thumbIndex/0&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#de l&amp;#039;url du lien on récupère l&amp;#039;id grâce à une expression régulière&lt;br /&gt;
searchObj = re.search( r&amp;#039;id/([0-9]+)/&amp;#039;, linkURL )&lt;br /&gt;
id = searchObj.group(1)&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr//thumbnails/00000000100/gmw20_0194.thw&lt;br /&gt;
#de l&amp;#039;url de la thumbnail on récupère le nom du fichier sans l&amp;#039;extension&lt;br /&gt;
searchObj = re.search( r&amp;#039;/([^/]*)\.thw&amp;#039;, thumbnailURL )&lt;br /&gt;
fileName = searchObj.group(1)&lt;br /&gt;
&lt;br /&gt;
finalURL = &amp;#039;https://regards.monuments-nationaux.fr/fr/asset/assetFile/id/&amp;#039;+id+&amp;#039;/size/3/type/1/filename/&amp;#039;+fileName&lt;br /&gt;
print(&amp;#039;Attention voici l\&amp;#039;URL de l\&amp;#039;image! &amp;#039; + finalURL)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===03 décembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants:&lt;br /&gt;
#article h1, div.lead, div.gr-media-image img, div.gr-article-content à partir d&amp;#039;une page d&amp;#039;article de lesoir.be&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://www.lesoir.be/340088/article/2020-11-26/reouverture-des-commerces-fetes-ce-qui-sera-discute-par-le-comite-de&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#print(data.read())&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#on convertit un sélecteur css en objets de type &amp;quot;cssselector&amp;quot;&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1, article h2&amp;#039;)&lt;br /&gt;
#   0&lt;br /&gt;
#[selecteur1, selecteur2]&lt;br /&gt;
&lt;br /&gt;
#[selecteur de type cssselect]&lt;br /&gt;
&lt;br /&gt;
for selecteur in selecteurs:&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur, translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    for resultat in resultats:&lt;br /&gt;
        print(resultat.text_content())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===26 novembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants:&lt;br /&gt;
#article h1, div.lead, div.gr-media-image img, div.gr-article-content à partir d&amp;#039;une page d&amp;#039;article de lesoir.be&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://www.lesoir.be/340088/article/2020-11-26/reouverture-des-commerces-fetes-ce-qui-sera-discute-par-le-comite-de&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
print(data.read())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants:&lt;br /&gt;
#article h1, div.lead, div.gr-media-image img, div.gr-article-content à partir d&amp;#039;une page d&amp;#039;article de lesoir.be&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://www.lesoir.be/340088/article/2020-11-26/reouverture-des-commerces-fetes-ce-qui-sera-discute-par-le-comite-de&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#print(data.read())&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
#une liste en python&lt;br /&gt;
#           0          1            2&lt;br /&gt;
liste = [&amp;#039;coucou&amp;#039;, &amp;#039;pouetpouet&amp;#039;, &amp;#039;byebye&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
print(liste[2])&lt;br /&gt;
&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1&amp;#039;)&lt;br /&gt;
#[selecteur de type cssselect]&lt;br /&gt;
chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteurs[0], translate_pseudo_elements=True)&lt;br /&gt;
#selecteur de type xpath&lt;br /&gt;
&lt;br /&gt;
resultats = src.xpath(chemin_xpath)&lt;br /&gt;
#    0&lt;br /&gt;
#[html element]&lt;br /&gt;
print(resultats[0].text_content())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Formation HTML/CSS utile en complément du cours ici : ==&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=Y80juYcu3ZI&amp;amp;list=PLwLsbqvBlImHG5yeUCXJ1aqNMgUKi1NK3&lt;br /&gt;
&lt;br /&gt;
===19 novembre 2020===&lt;br /&gt;
&lt;br /&gt;
====html et css====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!doctype html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Sélecteurs css&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;styles.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;section id=&amp;quot;actualite&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt;Ma section actualité&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;breve&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Sous-titre de l&amp;#039;article&amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;time&amp;gt;13:00&amp;lt;/time&amp;gt;&lt;br /&gt;
          &amp;lt;time&amp;gt;13:00&amp;lt;/time&amp;gt;&lt;br /&gt;
          &amp;lt;time data-type=&amp;quot;begin-hour&amp;quot;&amp;gt;15:00&amp;lt;/time&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;article-full&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article 2&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article 2 &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article 2&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;article-full&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article 3&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article 3 &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article 3&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;section id=&amp;quot;archives&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt;Ma section Archives&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;breve&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/*pointeur css vers balise html*/&lt;br /&gt;
html, body{&lt;br /&gt;
  margin:0;&lt;br /&gt;
  padding:0;&lt;br /&gt;
}&lt;br /&gt;
h1{&lt;br /&gt;
  font-family:Helvetica, Arial, sans-serif;&lt;br /&gt;
  font-weight:normal;&lt;br /&gt;
  margin:10px;&lt;br /&gt;
  padding:10px;&lt;br /&gt;
  border:1px solid black;&lt;br /&gt;
}&lt;br /&gt;
/*pointeur css vers un ID*/&lt;br /&gt;
section#archives{&lt;br /&gt;
  background-color:gray;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
article{&lt;br /&gt;
  border-bottom:1px solid black;&lt;br /&gt;
}&lt;br /&gt;
/*pointeur css vers une classe*/&lt;br /&gt;
.breve{&lt;br /&gt;
  font-size:48pt;&lt;br /&gt;
  border-bottom:2px solid black;&lt;br /&gt;
}&lt;br /&gt;
.article-full{&lt;br /&gt;
  font-size:16pt;&lt;br /&gt;
}&lt;br /&gt;
/* pointeur css avec chemin */&lt;br /&gt;
section#actualite a{&lt;br /&gt;
  color:green;&lt;br /&gt;
}&lt;br /&gt;
section#actualite article.article-full a{&lt;br /&gt;
  color:red;&lt;br /&gt;
}&lt;br /&gt;
/* pointeur css avec chemin vers un enfant précis d&amp;#039;une balise */&lt;br /&gt;
section#actualite article.article-full:nth-child(3) a{&lt;br /&gt;
  color:pink;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*pointeur css avec un chemin vers un élément qui suit directement un autre élément*/&lt;br /&gt;
h3+time{&lt;br /&gt;
  background:green;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
time[data-type=&amp;#039;begin-hour&amp;#039;]{&lt;br /&gt;
  background:blue;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Librairies Python====&lt;br /&gt;
* pour naviguer:&lt;br /&gt;
** pycurl (http://pycurl.io/)&lt;br /&gt;
** urllib2 (https://docs.python.org/2/library/urllib2.html)&lt;br /&gt;
** requests (https://requests.readthedocs.io/en/master/)&lt;br /&gt;
** mechanize (https://mechanize.readthedocs.io/en/latest/index.html)&lt;br /&gt;
* pour parser:&lt;br /&gt;
** beautifulsoup (https://www.crummy.com/software/BeautifulSoup/bs4/doc/)&lt;br /&gt;
** lxml (https://lxml.de/xpathxslt.html)&lt;br /&gt;
** cssselect (https://cssselect.readthedocs.io/en/latest/)&lt;br /&gt;
&lt;br /&gt;
*User agent : &lt;br /&gt;
**What is my browser (https://www.whatismybrowser.com/guides/the-latest-user-agent/firefox)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
data = br.open(&amp;#039;https://poesie.webnet.fr/lesgrandsclassiques/Authors/B&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
for selector in cssselect.parse(&amp;#039;.author-list__link&amp;#039;):&lt;br /&gt;
    expression = cssselect.HTMLTranslator().selector_to_xpath(selector, translate_pseudo_elements=True)&lt;br /&gt;
    for result in src.xpath(expression):&lt;br /&gt;
        print(result.text_content())&lt;br /&gt;
        print(result.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pages des étudiant.e.s==&lt;br /&gt;
[[Utilisateur:Simon BLONDEAU|Simon Blondeau]]&lt;br /&gt;
&lt;br /&gt;
[[Page de William]]&lt;br /&gt;
&lt;br /&gt;
[[Mondher]]&lt;br /&gt;
&lt;br /&gt;
[[Lea]]&lt;br /&gt;
&lt;br /&gt;
[[MP Antoin]]&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Pierreetheve|Pierre Ethève]]&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Chloé|Chloé]]&lt;br /&gt;
&lt;br /&gt;
[[Jonquille]]&lt;br /&gt;
&lt;br /&gt;
[[margot]]&lt;br /&gt;
&lt;br /&gt;
[[Léo]]&lt;br /&gt;
&lt;br /&gt;
[[César]]&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:arthurlafontaine|Arthur Lafontaine]]&lt;br /&gt;
&lt;br /&gt;
[[Etienne Grignon]]&lt;br /&gt;
&lt;br /&gt;
==Déroulement du cours==&lt;br /&gt;
Le cours ne nécessite aucun prérequis si ce n&amp;#039;est une capacité d&amp;#039;attention pendant les séances. Cette attention implique qu&amp;#039;à certains moments, par exemple lors des moments de discussions ou de présentations, il sera demandé aux étudiant.e.s de fermer leur ordinateur, que l&amp;#039;usage des smartphones est interdit et que les étudiant.e.s doivent arriver à l&amp;#039;heure au cours (9h, le lundi matin).&lt;br /&gt;
&lt;br /&gt;
Comme il s&amp;#039;agit d&amp;#039;un cours technique, les travaux se feront majoritairement en classe et il n&amp;#039;est pas absolument nécessaire de travailler en dehors du cours, à part pour documenter les travaux ou préparer leurs présentations (les cotations).&lt;br /&gt;
&lt;br /&gt;
Le cours fonctionne en évaluation continue, ce qui signifie que chaque exercice réalisé en atelier aura une note attribuée. Pour réussir le cours, il faut essentiellement être présent.e.&lt;br /&gt;
&lt;br /&gt;
À cette évaluation continue s&amp;#039;ajoute deux notes en décembre et en mai qui correspondent aux moments de cotations. Il est demandé pour ces cotations de présenter une sélection des travaux réalisés jusque là.&lt;br /&gt;
&lt;br /&gt;
La difficulté technique, bien que présente, ne doit pas constituer une barrière pour assister au cours. Il ne sera pas demandé aux étudiant.e.s d&amp;#039;être performant.e.s mais plutôt de ne pas se braquer et d&amp;#039;accepter d&amp;#039;être inefficaces durant des périodes qui semblent parfois longues (voire trouver du plaisir dans ces périodes de recherches). L&amp;#039;entraide et le partage sont encouragés. Tout sera fait pour éviter des comportements de mise à distance du savoir entre celles et ceux &amp;quot;qui savent&amp;quot; et les &amp;quot;newbies&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Chaque étudiant.e a accès à ce wiki, qui servira durant toute l&amp;#039;année à documenter les travaux. La création des comptes pour le wiki se fait au début du deuxième cours (au moment de l&amp;#039;inscription au cours).&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=ERG::Code-2020-2&amp;diff=4750</id>
		<title>ERG::Code-2020-2</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=ERG::Code-2020-2&amp;diff=4750"/>
		<updated>2021-02-11T10:51:46Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* 11 février 2021 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Ce cours est destiné aux étudiant.e.s de BAC3. Cette année, nous nous concentrons sur les bases de données, définies comme &amp;quot;une collection structurée d&amp;#039;éléments sur laquelle l&amp;#039;utilisateur.trice peut effectuer une série d&amp;#039;opérations: voir, naviguer, chercher&amp;quot; (Lev Manovich, &amp;#039;&amp;#039;Le langage des Nouveaux Médias&amp;#039;&amp;#039;). &lt;br /&gt;
&lt;br /&gt;
==Sessions==&lt;br /&gt;
===11 février 2021===&lt;br /&gt;
&lt;br /&gt;
Liste des sources: sites d&amp;#039;actualités, Suisse Romande&lt;br /&gt;
* 24 heures (Canton de Vaud)&lt;br /&gt;
* Tribune de Genève (Canton de Genève)&lt;br /&gt;
* Le Temps (Canton de Genève)&lt;br /&gt;
* La Liberté (Canton de Fribourg)&lt;br /&gt;
* La Gruyère (Canton de Fribourg)&lt;br /&gt;
* Le Nouvelliste (Canton du Valais)&lt;br /&gt;
* Arc Info (Canton de Neuchâtel)&lt;br /&gt;
* Le Journal du Jura (partie francophone du Canton de Berne)&lt;br /&gt;
* Le Quotidien jurassien (Canton du Jura)&lt;br /&gt;
* La Côte (Région lémanique)&lt;br /&gt;
* La Région (Région Nord-vaudoise)&lt;br /&gt;
* Le Courrier (Romandie)&lt;br /&gt;
* Le Matin (Romandie)&lt;br /&gt;
* 20 Minutes (Romandie)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La Gruyère  : https://www.lagruyere.ch/2021/02/%C2%AB-nous-demand%C3%A9-de-nous-endetter-pour-la-soci%C3%A9t%C3%A9%C2%BB.html&lt;br /&gt;
&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1, h2, article h3, article p, article time&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants à partir d&amp;#039;une page d&amp;#039;article de lecourrier.ch&lt;br /&gt;
#article h1, article h2, article h3, article p et article time &lt;br /&gt;
 &lt;br /&gt;
import mechanize&lt;br /&gt;
 &lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
 &lt;br /&gt;
import cssselect&lt;br /&gt;
 &lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
from urllib.parse import urlparse&lt;br /&gt;
 &lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
 &lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
 &lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
 &lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
 &lt;br /&gt;
data = br.open(&amp;#039;https://lecourrier.ch/2021/02/10/morten-gisselbaek-le-candidat-de-la-decroissance/&amp;#039;, timeout=10.0)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#on convertit un sélecteur css en objets de type &amp;quot;cssselector&amp;quot;&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1.c-Article-titre, article .c-Article-chapeau, article .c-Article-metaDate, article c-Article-metaJournaliste, article .c-Article-texte&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
selecteursImages = cssselect.parse(&amp;#039;article .c-Article-imageFeatured img&amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
for selecteur in selecteurs:&lt;br /&gt;
    print(selecteur)&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur, translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    for resultat in resultats:&lt;br /&gt;
        print(resultat.text_content())&lt;br /&gt;
&lt;br /&gt;
for selecteur in selecteursImages:&lt;br /&gt;
    print(selecteur)&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur, translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    for resultat in resultats:&lt;br /&gt;
        imageUrl = &amp;#039;https://lecourrier.ch&amp;#039;+resultat.get(&amp;#039;src&amp;#039;)&lt;br /&gt;
        print(&amp;#039;downloading&amp;#039;+imageUrl)&lt;br /&gt;
        filename = &amp;#039;test.jpg&amp;#039;&lt;br /&gt;
        data = br.open(imageUrl).read()&lt;br /&gt;
        &lt;br /&gt;
        save = open(filename, &amp;#039;wb&amp;#039;)&lt;br /&gt;
        save.write(data)&lt;br /&gt;
        save.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===17 décembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def getInfos(src, selecteurcss):&lt;br /&gt;
    selecteur = cssselect.parse(selecteurcss)&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur[0], translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    return resultats&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#039;Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/1&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/1&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/1&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr/fr/asset/link/104-technique-s-et-materiau-x/vitrail/page/2&lt;br /&gt;
&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
thumbnails = getInfos(src, &amp;#039;span.thumbnail_url&amp;#039;)&lt;br /&gt;
descriptions = getInfos(src, &amp;#039;span.asset-descr&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===10 décembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
#on part de l&amp;#039;url de la thumbnail: https://regards.monuments-nationaux.fr//thumbnails/00000000100/gmw20_0194.thw&lt;br /&gt;
#et l&amp;#039;url du lien pour le zoom: fr/asset/id/99816/tour-de-la-lanterne-lanterne-vitraux/fromSearch/1/initiatorAction/metadataInternalLink/mosaicCount/2877/thumbIndex/0&lt;br /&gt;
#on veut arriver à ça: https://regards.monuments-nationaux.fr/fr/asset/assetFile/id/99816/size/3/type/1/filename/CMN_gmw20_0194&lt;br /&gt;
&lt;br /&gt;
thumbnailURL = input(&amp;#039;Entrer l\&amp;#039;url de la thumbnail&amp;#039;)&lt;br /&gt;
linkURL = input(&amp;#039;Entrer l\&amp;#039;url du lien&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
#thumbnailURL = &amp;#039;https://regards.monuments-nationaux.fr//thumbnails/00000000100/gmw20_0194.thw&amp;#039;&lt;br /&gt;
#linkURL = &amp;#039;fr/asset/id/99816/tour-de-la-lanterne-lanterne-vitraux/fromSearch/1/initiatorAction/metadataInternalLink/mosaicCount/2877/thumbIndex/0&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#de l&amp;#039;url du lien on récupère l&amp;#039;id grâce à une expression régulière&lt;br /&gt;
searchObj = re.search( r&amp;#039;id/([0-9]+)/&amp;#039;, linkURL )&lt;br /&gt;
id = searchObj.group(1)&lt;br /&gt;
&lt;br /&gt;
#https://regards.monuments-nationaux.fr//thumbnails/00000000100/gmw20_0194.thw&lt;br /&gt;
#de l&amp;#039;url de la thumbnail on récupère le nom du fichier sans l&amp;#039;extension&lt;br /&gt;
searchObj = re.search( r&amp;#039;/([^/]*)\.thw&amp;#039;, thumbnailURL )&lt;br /&gt;
fileName = searchObj.group(1)&lt;br /&gt;
&lt;br /&gt;
finalURL = &amp;#039;https://regards.monuments-nationaux.fr/fr/asset/assetFile/id/&amp;#039;+id+&amp;#039;/size/3/type/1/filename/&amp;#039;+fileName&lt;br /&gt;
print(&amp;#039;Attention voici l\&amp;#039;URL de l\&amp;#039;image! &amp;#039; + finalURL)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===03 décembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants:&lt;br /&gt;
#article h1, div.lead, div.gr-media-image img, div.gr-article-content à partir d&amp;#039;une page d&amp;#039;article de lesoir.be&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://www.lesoir.be/340088/article/2020-11-26/reouverture-des-commerces-fetes-ce-qui-sera-discute-par-le-comite-de&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#print(data.read())&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#on convertit un sélecteur css en objets de type &amp;quot;cssselector&amp;quot;&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1, article h2&amp;#039;)&lt;br /&gt;
#   0&lt;br /&gt;
#[selecteur1, selecteur2]&lt;br /&gt;
&lt;br /&gt;
#[selecteur de type cssselect]&lt;br /&gt;
&lt;br /&gt;
for selecteur in selecteurs:&lt;br /&gt;
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur, translate_pseudo_elements=True)&lt;br /&gt;
    resultats = src.xpath(chemin_xpath)&lt;br /&gt;
    for resultat in resultats:&lt;br /&gt;
        print(resultat.text_content())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===26 novembre 2020===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants:&lt;br /&gt;
#article h1, div.lead, div.gr-media-image img, div.gr-article-content à partir d&amp;#039;une page d&amp;#039;article de lesoir.be&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://www.lesoir.be/340088/article/2020-11-26/reouverture-des-commerces-fetes-ce-qui-sera-discute-par-le-comite-de&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
print(data.read())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#un programme qui récupère les données contenues dans les sélecteurs css suivants:&lt;br /&gt;
#article h1, div.lead, div.gr-media-image img, div.gr-article-content à partir d&amp;#039;une page d&amp;#039;article de lesoir.be&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
import ssl&lt;br /&gt;
&lt;br /&gt;
#initialisation d&amp;#039;un objet &amp;quot;navigateur&amp;quot; avec la librairie mechanize&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
#fin de la configuration de mechanize&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    _create_unverified_https_context = ssl._create_unverified_context&lt;br /&gt;
except AttributeError:&lt;br /&gt;
    # Legacy Python that doesn&amp;#039;t verify HTTPS certificates by default&lt;br /&gt;
    pass&lt;br /&gt;
else:&lt;br /&gt;
    # Handle target environment that doesn&amp;#039;t support HTTPS verification&lt;br /&gt;
    ssl._create_default_https_context = _create_unverified_https_context&lt;br /&gt;
&lt;br /&gt;
data = br.open(&amp;#039;https://www.lesoir.be/340088/article/2020-11-26/reouverture-des-commerces-fetes-ce-qui-sera-discute-par-le-comite-de&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#print(data.read())&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
#une liste en python&lt;br /&gt;
#           0          1            2&lt;br /&gt;
liste = [&amp;#039;coucou&amp;#039;, &amp;#039;pouetpouet&amp;#039;, &amp;#039;byebye&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
print(liste[2])&lt;br /&gt;
&lt;br /&gt;
selecteurs = cssselect.parse(&amp;#039;article h1&amp;#039;)&lt;br /&gt;
#[selecteur de type cssselect]&lt;br /&gt;
chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteurs[0], translate_pseudo_elements=True)&lt;br /&gt;
#selecteur de type xpath&lt;br /&gt;
&lt;br /&gt;
resultats = src.xpath(chemin_xpath)&lt;br /&gt;
#    0&lt;br /&gt;
#[html element]&lt;br /&gt;
print(resultats[0].text_content())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Formation HTML/CSS utile en complément du cours ici : ==&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=Y80juYcu3ZI&amp;amp;list=PLwLsbqvBlImHG5yeUCXJ1aqNMgUKi1NK3&lt;br /&gt;
&lt;br /&gt;
===19 novembre 2020===&lt;br /&gt;
&lt;br /&gt;
====html et css====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!doctype html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Sélecteurs css&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;styles.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;section id=&amp;quot;actualite&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt;Ma section actualité&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;breve&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Sous-titre de l&amp;#039;article&amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;time&amp;gt;13:00&amp;lt;/time&amp;gt;&lt;br /&gt;
          &amp;lt;time&amp;gt;13:00&amp;lt;/time&amp;gt;&lt;br /&gt;
          &amp;lt;time data-type=&amp;quot;begin-hour&amp;quot;&amp;gt;15:00&amp;lt;/time&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;article-full&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article 2&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article 2 &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article 2&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;article-full&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article 3&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article 3 &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article 3&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;section id=&amp;quot;archives&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt;Ma section Archives&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;article class=&amp;quot;breve&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;header&amp;gt;Chapeau de l&amp;#039;article&amp;lt;/header&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&lt;br /&gt;
          Contenu de l&amp;#039;article &amp;lt;a href=&amp;quot;http://www.curlybraces.be&amp;quot;&amp;gt;Un lien vers un site&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;footer&amp;gt;Footer de l&amp;#039;article&amp;lt;/footer&amp;gt;&lt;br /&gt;
      &amp;lt;/article&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/*pointeur css vers balise html*/&lt;br /&gt;
html, body{&lt;br /&gt;
  margin:0;&lt;br /&gt;
  padding:0;&lt;br /&gt;
}&lt;br /&gt;
h1{&lt;br /&gt;
  font-family:Helvetica, Arial, sans-serif;&lt;br /&gt;
  font-weight:normal;&lt;br /&gt;
  margin:10px;&lt;br /&gt;
  padding:10px;&lt;br /&gt;
  border:1px solid black;&lt;br /&gt;
}&lt;br /&gt;
/*pointeur css vers un ID*/&lt;br /&gt;
section#archives{&lt;br /&gt;
  background-color:gray;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
article{&lt;br /&gt;
  border-bottom:1px solid black;&lt;br /&gt;
}&lt;br /&gt;
/*pointeur css vers une classe*/&lt;br /&gt;
.breve{&lt;br /&gt;
  font-size:48pt;&lt;br /&gt;
  border-bottom:2px solid black;&lt;br /&gt;
}&lt;br /&gt;
.article-full{&lt;br /&gt;
  font-size:16pt;&lt;br /&gt;
}&lt;br /&gt;
/* pointeur css avec chemin */&lt;br /&gt;
section#actualite a{&lt;br /&gt;
  color:green;&lt;br /&gt;
}&lt;br /&gt;
section#actualite article.article-full a{&lt;br /&gt;
  color:red;&lt;br /&gt;
}&lt;br /&gt;
/* pointeur css avec chemin vers un enfant précis d&amp;#039;une balise */&lt;br /&gt;
section#actualite article.article-full:nth-child(3) a{&lt;br /&gt;
  color:pink;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*pointeur css avec un chemin vers un élément qui suit directement un autre élément*/&lt;br /&gt;
h3+time{&lt;br /&gt;
  background:green;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
time[data-type=&amp;#039;begin-hour&amp;#039;]{&lt;br /&gt;
  background:blue;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Librairies Python====&lt;br /&gt;
* pour naviguer:&lt;br /&gt;
** pycurl (http://pycurl.io/)&lt;br /&gt;
** urllib2 (https://docs.python.org/2/library/urllib2.html)&lt;br /&gt;
** requests (https://requests.readthedocs.io/en/master/)&lt;br /&gt;
** mechanize (https://mechanize.readthedocs.io/en/latest/index.html)&lt;br /&gt;
* pour parser:&lt;br /&gt;
** beautifulsoup (https://www.crummy.com/software/BeautifulSoup/bs4/doc/)&lt;br /&gt;
** lxml (https://lxml.de/xpathxslt.html)&lt;br /&gt;
** cssselect (https://cssselect.readthedocs.io/en/latest/)&lt;br /&gt;
&lt;br /&gt;
*User agent : &lt;br /&gt;
**What is my browser (https://www.whatismybrowser.com/guides/the-latest-user-agent/firefox)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import mechanize&lt;br /&gt;
import lxml.html as lh&lt;br /&gt;
import cssselect&lt;br /&gt;
&lt;br /&gt;
br = mechanize.Browser()&lt;br /&gt;
br.addheaders = [(&amp;#039;User-agent&amp;#039;, &amp;#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&amp;#039;)]&lt;br /&gt;
br.set_handle_robots(False)&lt;br /&gt;
data = br.open(&amp;#039;https://poesie.webnet.fr/lesgrandsclassiques/Authors/B&amp;#039;, timeout=10.0)&lt;br /&gt;
&lt;br /&gt;
#br.follow_link(text_regex=r&amp;quot;cheese\s*shop&amp;quot;, nr=1)&lt;br /&gt;
&lt;br /&gt;
#data = br.follow_link(url=r&amp;quot;/lesgrandsclassiques/Poemes&amp;quot;, nr=0)&lt;br /&gt;
&lt;br /&gt;
rawdata = data.read()&lt;br /&gt;
unicode = rawdata.decode(&amp;#039;utf-8&amp;#039;, &amp;#039;ignore&amp;#039;)&lt;br /&gt;
src = lh.fromstring(unicode)&lt;br /&gt;
&lt;br /&gt;
for selector in cssselect.parse(&amp;#039;.author-list__link&amp;#039;):&lt;br /&gt;
    expression = cssselect.HTMLTranslator().selector_to_xpath(selector, translate_pseudo_elements=True)&lt;br /&gt;
    for result in src.xpath(expression):&lt;br /&gt;
        print(result.text_content())&lt;br /&gt;
        print(result.get(&amp;#039;href&amp;#039;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pages des étudiant.e.s==&lt;br /&gt;
[[Utilisateur:Simon BLONDEAU|Simon Blondeau]]&lt;br /&gt;
&lt;br /&gt;
[[Page de William]]&lt;br /&gt;
&lt;br /&gt;
[[Mondher]]&lt;br /&gt;
&lt;br /&gt;
[[Lea]]&lt;br /&gt;
&lt;br /&gt;
[[MP Antoin]]&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Pierreetheve|Pierre Ethève]]&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Chloé|Chloé]]&lt;br /&gt;
&lt;br /&gt;
[[Jonquille]]&lt;br /&gt;
&lt;br /&gt;
[[margot]]&lt;br /&gt;
&lt;br /&gt;
[[Léo]]&lt;br /&gt;
&lt;br /&gt;
[[César]]&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:arthurlafontaine|Arthur Lafontaine]]&lt;br /&gt;
&lt;br /&gt;
[[Etienne Grignon]]&lt;br /&gt;
&lt;br /&gt;
==Déroulement du cours==&lt;br /&gt;
Le cours ne nécessite aucun prérequis si ce n&amp;#039;est une capacité d&amp;#039;attention pendant les séances. Cette attention implique qu&amp;#039;à certains moments, par exemple lors des moments de discussions ou de présentations, il sera demandé aux étudiant.e.s de fermer leur ordinateur, que l&amp;#039;usage des smartphones est interdit et que les étudiant.e.s doivent arriver à l&amp;#039;heure au cours (9h, le lundi matin).&lt;br /&gt;
&lt;br /&gt;
Comme il s&amp;#039;agit d&amp;#039;un cours technique, les travaux se feront majoritairement en classe et il n&amp;#039;est pas absolument nécessaire de travailler en dehors du cours, à part pour documenter les travaux ou préparer leurs présentations (les cotations).&lt;br /&gt;
&lt;br /&gt;
Le cours fonctionne en évaluation continue, ce qui signifie que chaque exercice réalisé en atelier aura une note attribuée. Pour réussir le cours, il faut essentiellement être présent.e.&lt;br /&gt;
&lt;br /&gt;
À cette évaluation continue s&amp;#039;ajoute deux notes en décembre et en mai qui correspondent aux moments de cotations. Il est demandé pour ces cotations de présenter une sélection des travaux réalisés jusque là.&lt;br /&gt;
&lt;br /&gt;
La difficulté technique, bien que présente, ne doit pas constituer une barrière pour assister au cours. Il ne sera pas demandé aux étudiant.e.s d&amp;#039;être performant.e.s mais plutôt de ne pas se braquer et d&amp;#039;accepter d&amp;#039;être inefficaces durant des périodes qui semblent parfois longues (voire trouver du plaisir dans ces périodes de recherches). L&amp;#039;entraide et le partage sont encouragés. Tout sera fait pour éviter des comportements de mise à distance du savoir entre celles et ceux &amp;quot;qui savent&amp;quot; et les &amp;quot;newbies&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Chaque étudiant.e a accès à ce wiki, qui servira durant toute l&amp;#039;année à documenter les travaux. La création des comptes pour le wiki se fait au début du deuxième cours (au moment de l&amp;#039;inscription au cours).&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4650</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4650"/>
		<updated>2021-01-19T18:45:40Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images et leurs caractéristiques (titre, date, source...etc). &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4649</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4649"/>
		<updated>2021-01-19T18:45:02Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots de mes premiers tests  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri ! Bonne lecture :)&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4648</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4648"/>
		<updated>2021-01-19T18:43:47Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait les photographies numérisées de centres d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;était un peu difficile, j&amp;#039;ai l&amp;#039;impression que je commence à comprendre mais qu&amp;#039;il y a des erreurs dans mon travail. J&amp;#039;espère que mon avancée est suffisante pour ce premier quadri !&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4647</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4647"/>
		<updated>2021-01-19T18:40:32Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test de récupération d&amp;#039;url image  : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4646</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4646"/>
		<updated>2021-01-19T18:38:00Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse, les récupérer, les encoder puis les convertir (nom de l&amp;#039;image, date...etc).  Récupérer les url des images pour les télécharger.&lt;br /&gt;
&lt;br /&gt;
4-Printer les données&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les screenshots : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Untitled_Diagram2_Lea.png&amp;diff=4645</id>
		<title>Fichier:Untitled Diagram2 Lea.png</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Untitled_Diagram2_Lea.png&amp;diff=4645"/>
		<updated>2021-01-19T18:35:30Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4644</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4644"/>
		<updated>2021-01-19T18:35:12Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse &lt;br /&gt;
&lt;br /&gt;
4-Récupérer en printant les données&lt;br /&gt;
&lt;br /&gt;
Les screenshots : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram2_Lea.png]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4643</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4643"/>
		<updated>2021-01-19T17:52:38Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse &lt;br /&gt;
&lt;br /&gt;
4-Récupérer en printant les données&lt;br /&gt;
&lt;br /&gt;
Les screenshots : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Schéma de mon programme :&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_18.41.11_copie.jpg&amp;diff=4642</id>
		<title>Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_18.41.11_copie.jpg&amp;diff=4642"/>
		<updated>2021-01-19T17:51:22Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4641</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4641"/>
		<updated>2021-01-19T17:51:10Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse &lt;br /&gt;
&lt;br /&gt;
4-Récupérer en printant les données&lt;br /&gt;
&lt;br /&gt;
Les screenshots : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
Résultat test : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.11 copie.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_18.44.20_copie.jpg&amp;diff=4640</id>
		<title>Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_18.44.20_copie.jpg&amp;diff=4640"/>
		<updated>2021-01-19T17:48:53Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4639</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4639"/>
		<updated>2021-01-19T17:48:42Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse &lt;br /&gt;
&lt;br /&gt;
4-Récupérer en printant les données&lt;br /&gt;
&lt;br /&gt;
les screenshots : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.44.20 copie.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4638</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4638"/>
		<updated>2021-01-19T17:47:23Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse &lt;br /&gt;
&lt;br /&gt;
4-Récupérer les données&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_18.41.27_copie.jpg&amp;diff=4637</id>
		<title>Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_18.41.27_copie.jpg&amp;diff=4637"/>
		<updated>2021-01-19T17:46:50Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4636</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4636"/>
		<updated>2021-01-19T17:45:46Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir mechanize&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse &lt;br /&gt;
&lt;br /&gt;
4-Récupérer les données&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 18.41.27 copie.jpgg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4635</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4635"/>
		<updated>2021-01-19T16:05:40Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Objectif : Elaboration du programme en python pour récolter les images. &lt;br /&gt;
&lt;br /&gt;
1-Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;br /&gt;
&lt;br /&gt;
2-Se connecter au site à partir de mon code&lt;br /&gt;
&lt;br /&gt;
3-Insérer dans le code les selecteurs css qui m&amp;#039;intéresse &lt;br /&gt;
&lt;br /&gt;
4-Récupérer les données&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4634</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4634"/>
		<updated>2021-01-19T16:04:23Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Elaboration du programme en python pour récolter les images. Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
page cible : https://www.digitaltransgenderarchive.net/catalog?f%5Bgenre_ssim%5D%5B%5D=Photographs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_16.53.29_copie.jpg&amp;diff=4633</id>
		<title>Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Screen_Shot_2021-01-19_at_16.53.29_copie.jpg&amp;diff=4633"/>
		<updated>2021-01-19T15:57:13Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4632</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4632"/>
		<updated>2021-01-19T15:57:03Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Programme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Elaboration du programme en python pour récolter les images. Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 16.53.29 copie.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4631</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4631"/>
		<updated>2021-01-19T15:44:08Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
Diagramme de la structure de la base de données : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
 &lt;br /&gt;
Elaboration du programme en python pour récolter les images. Tout d&amp;#039;abord, il a fallu que je repère les selecteurs css qui contiennent les informations qui me sont nécessaire.&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Diagram_lea.jpg&amp;diff=4618</id>
		<title>Fichier:Diagram lea.jpg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Diagram_lea.jpg&amp;diff=4618"/>
		<updated>2021-01-19T10:30:51Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4617</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4617"/>
		<updated>2021-01-19T10:30:41Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram_lea.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4616</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4616"/>
		<updated>2021-01-19T10:29:43Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Diagram.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4615</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4615"/>
		<updated>2021-01-19T10:28:19Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Untitled Diagram-2.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:Untitled_Diagram-2.jpg&amp;diff=4614</id>
		<title>Fichier:Untitled Diagram-2.jpg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:Untitled_Diagram-2.jpg&amp;diff=4614"/>
		<updated>2021-01-19T10:27:58Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4606</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4606"/>
		<updated>2021-01-19T10:24:44Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screen Shot 2021-01-19 at 11.23.44]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4594</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4594"/>
		<updated>2021-01-19T10:12:04Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4593</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4593"/>
		<updated>2021-01-19T10:11:24Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Projet :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sources :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Structure :&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4592</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4592"/>
		<updated>2021-01-19T10:10:43Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Projet :]]&lt;br /&gt;
&lt;br /&gt;
Je souhaite réaliser une base de données qui collecterait des images d&amp;#039;archive de la communauté lgbtqia+ et des personnes sexisées (Drouar, 2020) afin de leur donner plus de visibilité et nous permettre de lutter contre le processus de désindividuation. Je suis très intéressé par la notion de mémoire collective et la manière dont nous nous construisons à travers l&amp;#039;hypomnémata numérique, c&amp;#039;est-à-dire internet. Un hypomnémata est, selon Platon, un objet technique nous permettant de nous souvenir. Il est un support externe de mémoire. Selon Bernard Stiegler, dans la lignée de Gilbert Simondon, tout objet technique est pharmacologique dans le sens où il est le remède comme le poison. Je m&amp;#039;intéresse ainsi aux bienfaits que peut procurer le web 2.0 comme notamment la mise en commun et le partage de savoirs. &lt;br /&gt;
&lt;br /&gt;
[[Sources :]] &lt;br /&gt;
&lt;br /&gt;
Pour ce faire je souhaite puiser des images à travers ces différents sites :&lt;br /&gt;
&lt;br /&gt;
https://www.digitaltransgenderarchive.net&lt;br /&gt;
http://dcmny.org/islandora/search/?type=edismax&amp;amp;cp=lesbianherstory%3Acollection&lt;br /&gt;
https://antrepeaux.net/ressources/&lt;br /&gt;
https://www.memoire-sexualites.org/category/marseille/&lt;br /&gt;
https://archiveslgbtqi.fr/organisation-du-collectif/&lt;br /&gt;
https://www.archivesdufeminisme.fr/ressources/sources-historiques/&lt;br /&gt;
http://bafe.fr/base-de-ressources/&lt;br /&gt;
&lt;br /&gt;
[[Structure]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Fichier:202010081021511001.jpg&amp;diff=4246</id>
		<title>Fichier:202010081021511001.jpg</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Fichier:202010081021511001.jpg&amp;diff=4246"/>
		<updated>2020-10-08T09:49:25Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4245</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4245"/>
		<updated>2020-10-08T09:49:05Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://bafe.fr/base-de-ressources/ &lt;br /&gt;
&lt;br /&gt;
https://paris-luttes.info/+-histoire-des-luttes-+?lang=fr&lt;br /&gt;
&lt;br /&gt;
https://www.streetpress.com&lt;br /&gt;
&lt;br /&gt;
https://www.thinkerview.com&lt;br /&gt;
&lt;br /&gt;
http://www.assiégé-e-s.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:202010081021511001.jpg]]&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4194</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4194"/>
		<updated>2020-10-01T09:45:02Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://bafe.fr/base-de-ressources/ &lt;br /&gt;
&lt;br /&gt;
https://paris-luttes.info/+-histoire-des-luttes-+?lang=fr&lt;br /&gt;
&lt;br /&gt;
https://www.streetpress.com&lt;br /&gt;
&lt;br /&gt;
https://www.thinkerview.com&lt;br /&gt;
&lt;br /&gt;
http://www.assiégé-e-s.com&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
	<entry>
		<id>https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4183</id>
		<title>Lea</title>
		<link rel="alternate" type="text/html" href="https://curlybraces.be/wiki/index.php?title=Lea&amp;diff=4183"/>
		<updated>2020-10-01T09:32:03Z</updated>

		<summary type="html">&lt;p&gt;LeaLea : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://bafe.fr/base-de-ressources/ &lt;br /&gt;
&lt;br /&gt;
https://paris-luttes.info/+-histoire-des-luttes-+?lang=fr&lt;br /&gt;
&lt;br /&gt;
https://www.streetpress.com&lt;br /&gt;
&lt;br /&gt;
https://www.thinkerview.com&lt;/div&gt;</summary>
		<author><name>LeaLea</name></author>
	</entry>
</feed>