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
eturls_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 sururls_with_statuses.json
, ne télécharge pas les liens cassés), archive dansurl_md5hash
chaque sauvegarde.
refstor |\22837...6aef97823 | |\.ok | |\.log | |\.url | \blabla2.htm |\23863...6afe28c4a | \.url \index.html