{"id":289,"date":"2015-11-21T15:01:33","date_gmt":"2015-11-21T14:01:33","guid":{"rendered":"http:\/\/elcep.legtux.org\/?p=289"},"modified":"2015-11-22T00:30:42","modified_gmt":"2015-11-21T23:30:42","slug":"hyphe-un-web-crawler-pour-lhna","status":"publish","type":"post","link":"https:\/\/elcep.legtux.org\/?p=289","title":{"rendered":"Hyphe un web crawler pour l&rsquo;HNA !"},"content":{"rendered":"<p>Je travaille depuis une semaine pour la Chaire \u00ab\u00a0<a href=\"http:\/\/www.unilim.fr\/geolab\/chaire-capital-environnemental-et-la-gestion-durable-des-cours-deau\/\" target=\"_blank\">Capital Environnemental et la Gestion Durable des Cours d&rsquo;Eau<\/a>\u00a0\u00bb de la fondation universitaire de Limoges. L&rsquo;objectif est de travailler sur la dimension collective de gestion de l&rsquo;eau et plus particuli\u00e8rement sur les formes sociales qu&rsquo;elle peuvent prendre.<\/p>\n<p>La premi\u00e8re chose que j&rsquo;ai voulu faire a \u00e9t\u00e9 de crawler un peu de web pour esp\u00e9rer comprendre comment \u00e9taient structur\u00e9es les organisations autour de la gestion de l&rsquo;eau sur mon terrain.<\/p>\n<p>Pour cela, j&rsquo;ai cherch\u00e9 pendant plusieurs heures un outil qui puisse, \u00e0 partir d&rsquo;une URL, identifier les liens et retrouver la constellation des renvois que font les sites institutionnels entre eux ; ce que les anglo-saxon appelle le HNA (hyperlink network analysis).<\/p>\n<p>Si ma premi\u00e8re r\u00e9action a \u00e9t\u00e9 de me tourner vers R, je n&rsquo;ai pas vraiment trouv\u00e9 mon bonheur, et je ne voulais pas r\u00e9-\u00e9crire un web crawler. Du coup mes explorations m&rsquo;ont pouss\u00e9 \u00e0 d\u00e9couvrir :<\/p>\n<ul>\n<li><a href=\"http:\/\/socnetv.sourceforge.net\/\" target=\"_blank\">SocNetv<\/a> (un logiciel de r\u00e9seau en Qt)<\/li>\n<li><a href=\"http:\/\/voson.anu.edu.au\/\" target=\"_blank\">voson<\/a> (un webservice sur inscription)<\/li>\n<li><a href=\"http:\/\/hyphe.medialab.sciences-po.fr\/\" target=\"_blank\">hyphe<\/a> (un logiciel libre bas\u00e9 sur python et mongoDB)<\/li>\n<\/ul>\n<p>Il se trouve que j&rsquo;ai particuli\u00e8rement aim\u00e9 ce que propose hyphe, mais il n&rsquo;est pas (encore) \u00e0 proprement parl\u00e9 multi-plateforme. Je me suis dit que ce serait l&rsquo;occasion de tester <a href=\"https:\/\/www.docker.com\/\" target=\"_blank\">Docker<\/a> qui est une solution de virtualisation d&rsquo;applications.<\/p>\n<h2>Docker quezako<\/h2>\n<p>Pour avoir un bon aper\u00e7u de ce qu&rsquo;est Docker pour la virtualisation je vous encourage \u00e0 lire un tr\u00e8s bon post sur le <a href=\"http:\/\/www.neogeo-online.net\/blog\/archives\/2227\/\" target=\"_blank\">blog de neogeo<\/a>.<\/p>\n<p>Utiliser Docker c&rsquo;est magique ! Pour cr\u00e9er un conteneur sous Ubuntu voil\u00e0 la marche \u00e0 suivre.<\/p>\n<pre>sudo docker run -i -t ubuntu \/bin\/bash\r\nadduser delaye\r\napt-get install sudo wget nano\r\nnano \/etc\/sudoers\r\nnano \/usr\/sbin\/policy-rc.d\r\nexit 0 #\u00e0 la place de 101\r\n<\/pre>\n<p>Vous avez alors acc\u00e8s \u00e0 une machine dans laquelle vous allez pouvoir monter un serveur, une application ou tout autre chose qui peut servir dans la vie d&rsquo;un chercheur. Mais encore plus fort, vous pourrez d\u00e9placer le tout comme un fichier. Ce qui veut dire que vous pourrez \u00e9changer avec d&rsquo;autres vos applications fonctionnelles dans des conteneurs.<\/p>\n<h2>Docker + Hyphe = &lt;3<\/h2>\n<p>Revenons \u00e0 nos moutons, la beaut\u00e9 du couple Docker \/ Hyphe, c&rsquo;est que vous disposez sur le github de Hyphe d&rsquo;un <code>Dockerfile<\/code>. Le <a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\">Dockerfile<\/a> vous permet dans un seul ficher texte de d\u00e9finir la configuration d&rsquo;une application multi-conteneur. Dans notre cas <a href=\"https:\/\/github.com\/oncletom\" target=\"_blank\">@oncletom<\/a> nous propose de faire fonctionner hyphe sur 4 conteneurs Docker :<\/p>\n<p>Pour cela vous devez ajouter une brique \u00e0 Docker : docker-compose. Cette brique s&rsquo;installe facilement en suivant les indications de <a href=\"https:\/\/docs.docker.com\/compose\/install\/\" target=\"_blank\">la doc<\/a>.<\/p>\n<p>Une fois que c&rsquo;est fait, vous pouvez vous rendre dans le r\u00e9pertoire dans lequel vous avez clon\u00e9 hyphe et lancer l&rsquo;installation des conteneurs gr\u00e2ce au Dockerfile.<\/p>\n<pre>cd github\/hyphe\/\r\ndocker-compose up<\/pre>\n<p>Il est temps d&rsquo;aller prendre un caf\u00e9 parce que l&rsquo;installation prend un certain temps (15 min chez moi). La prochaine fois que vous lancerez l&rsquo;application avec docker-compose up l&rsquo;instanciation des composants se fera beaucoup plus rapidement.<\/p>\n<p>Vous acc\u00e9dez \u00e0 l&rsquo;application via votre navigateur (pour le moment, Firefox n&rsquo;est pas supporter et vous devrez utiliser chrome ou chromium) \u00e0 l&rsquo;url suivante http:\/\/localhost:8000\/#\/login.<\/p>\n<p><a href=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-18-55.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-296\" src=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-18-55.png\" alt=\"hyphe is working\" width=\"600\" height=\"498\" srcset=\"https:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-18-55.png 600w, https:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-18-55-300x249.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a>Vous pouvez explorer des projets \u00ab\u00a0test\u00a0\u00bb, mais aussi et surtout vous lancer dans un nouveau projet et l\u00e2cher vos petits robot dans les m\u00e9andres de la toile !<\/p>\n<p><a href=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-29-16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-298\" src=\"http:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-29-16.png\" alt=\"hyphe is crawling\" width=\"600\" height=\"499\" srcset=\"https:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-29-16.png 600w, https:\/\/elcep.legtux.org\/wp-content\/uploads\/2015\/10\/Capture-d\u00e9cran-de-2015-10-28-14-29-16-300x250.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h3>Note<\/h3>\n<p>Si vous avez besoin de relancer l&rsquo;installation des conteneurs (s&rsquo;il y a eu des maj de hyphe par exemple) vous pouvez reconstruire les conteneurs avec<\/p>\n<pre>docker-compose build<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Je travaille depuis une semaine pour la Chaire \u00ab\u00a0Capital Environnemental et la Gestion Durable des Cours d&rsquo;Eau\u00a0\u00bb de la fondation universitaire de Limoges. L&rsquo;objectif est de travailler sur la dimension collective de gestion de l&rsquo;eau et plus particuli\u00e8rement sur les formes sociales qu&rsquo;elle peuvent prendre. La premi\u00e8re chose que j&rsquo;ai voulu faire a \u00e9t\u00e9 de &hellip; <a href=\"https:\/\/elcep.legtux.org\/?p=289\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Hyphe un web crawler pour l&rsquo;HNA !<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[50,47,45,46,48,49],"class_list":["post-289","post","type-post","status-publish","format-standard","hentry","category-geekeries","tag-docker","tag-eau","tag-hna","tag-hyperlink-network-analysis","tag-hyphe","tag-web-crawler"],"_links":{"self":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts\/289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=289"}],"version-history":[{"count":9,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts\/289\/revisions"}],"predecessor-version":[{"id":303,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=\/wp\/v2\/posts\/289\/revisions\/303"}],"wp:attachment":[{"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elcep.legtux.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}