Références pour le livre "la face cachée d'Internet"

Table des matières

1 Références au format html et archive

Vous pouvez trouver l'ensemble des références utilisées dans le livre "la face cachée d'Internet" ici (archive tar). Chaque hyperlien possède un lien direct (noté [direct]) ainsi qu'un lien vers une sauvegarde du contenu (noté [arc]). Les sauvegardes sont partielles (seul le html est sauvegardé) et excluent notamment youtube.com, archive.org et wikipedia.org. Les notes de bas de page ne sont pas incluses, mais si ça vous chante, vous pouvez tout recopier et utiliser mon travail pour archiver les liens (bien sûr, il faut avoir le livre ;)).

2 Code et commentaires

2.1 code

Tout ceci a été fait à l'aide de ce script python. Voici ce qu'il fait lorsqu'il est invoqué:

  • index des références au format html à partir de fichiers texte.
  • structure de dossiers (dans refstor) pour le stockage des pages qui seront pointées par les urls.
  • script de téléchargement dw.sh (utilise wget, le script ne gère que les schémas http et https).

L'utilisateur doit lancer manuellement le script de téléchargement. Il est à noter que les liens d'archive sont insérés quel que soit le statut du lien (car le téléchargement s'effectue séparément). Le format des fichiers texte de références s'écrit comme suit (les numéros de références doivent être uniques):

1 : Ceci est une référence comportant uniquement du texte
2 : Référence assez longue, s'étendant sur plusieurs lignes
et contenant également une url. Voir: https://example.com/page.htm
3 : Les références peuvent contenir autant d'urls que vous le souhaitez.
voir: http://example.net/page2.htm et https://example.org/apropos.htm?id=2

Et vous pouvez invoquer le script comme cela:

python refark.py intro-refs.txt /path/to/part1-refs.txt ../../part2-refs.txt

2.2 commentaires

J'ai travaillé à partir de la présentation de MaliciaRogue sur slideshare. Environ une vingtaine de liens ne fonctionnent plus (fichier de log du 30 avril 2018). Lorsque c'était possible, j'ai essayé de corriger ces problèmes et d'ajouter des liens (notés nb:arc) vers des archives.

2.3 idées

des outils séparés pour chaque tâche, utiliser plus intensivement urllib ? ou bien faire un programme avec des sous-fonctions (utiliser argparse)

  • parser refs.txt, output au format JSON (refs.json)
  • webspider en python, input refs.json, output au format JSON également (urls_with_statuses.json)
    • détecte les entrées dupliquées
    [{"url":"http://example.com/nonexistent.html","proto_status":404, "reason":"protocol error", "url_md5hash":"bd26eb...3ac4", "download":False},
     {"url":"http://nonexistent.example.com/","proto_status":None, "reason":"network error", "url_md5hash":"ae67f...8ac5", "download":False},
     {"url":"http://example.com/","proto_status":200, "reason":None, "url_md5hash":"ff5e...e5cab0", "download":True}]
    
  • générateur d'index en python (se base sur refs.json et urls_with_statuses.json, fait des jolis petits boutons de statut avec des couleurs)
    • possibilité d'activer ou non l'archivage à ce moment-là
  • générateur dw.sh en python (se base sur urls_with_statuses.json, ne télécharge pas les liens cassés), archive dans url_md5hash chaque sauvegarde.
refstor
|\22837...6aef97823
| |\.ok
| |\.log
| |\.url
| \blabla2.htm
|\23863...6afe28c4a
| \.url
\index.html

Date: <2018-05-19 sam.>

Auteur: kouett

Created: 2018-05-19 sam. 22:04

Emacs 25.1.1 (Org mode 8.2.10)

Validate