medialab / hyphe

Websites crawler with built-in exploration and control web interface
http://hyphe.medialab.sciences-po.fr/demo/
GNU Affero General Public License v3.0
328 stars 59 forks source link

Crawling unsuccessful no error #409

Closed junfan59 closed 3 years ago

junfan59 commented 3 years ago

Bonjour,

Étant à le recherche d'une solution de "meta" moteur de recherche web, j'ai installé Hyphe avec la méthode docker pour tester sur Debian 10.

J'ai dû downgradé docker en 20.10.5 pour une raison que je ne maitrise pas vraiment et qui semble liée à ipv6 et j'ai configuré hyphe pour utiliser le port 8080 pour des raisons de ports fermés dans l'environnement de test où je me trouve ainsi que le port 3306 pour mogodb pour les mêmes raisons.

Je ne saurais dire si cela à un rapport mais quand j’essaie de crawler quelque chose (interne ou externe) j'ai systématique un échec (unsuccessful).

Dans les logs visibles quand on démarre Hyphe sans démon, je ne voit aucune erreur et je ne sais pas du tout comment déboguer plus. Petite précision, la technologie "docker" est nouvelle pour moi et je ne maitrise pas du tout. Un petit coup de pouce serait bienvenu :)

Merci beaucoup !

boogheta commented 3 years ago

Bonjour @junfan59, Pouvez-vous copier coller les logs des conteneurs Docker et notamment de celui nommé "crawler_1"? De quand date votre installation et avez-vous fait un docker-compose pull ou docker-compose build? J'ai poussé hier après-midi un correctif lié au crawler donc il est possible que votre souci corresponde au problème depuis corrigé.

junfan59 commented 3 years ago

Bonjour,

Merci pour cette réponse très rapide ! :)

J'ai fais l'installation hier matin je crois je serais peut-être passé juste à côté de la bonne version :) Sinon pour répondre à vos questions, je démarre avec la commande "docker-compose up". Quant à la question si j'ai fais un docker-compose pull ou docker-compose build.. aucune idée :)

Donc en tapant "sudo docker logs -f -t --details hyphe_crawler_1" j'ai (après une tentative de crawl) :

2021-04-29T09:53:10.213088520Z  2021-04-29T09:53:10+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:09 +0000] "GET /listprojects.json HTTP/1.0" 200 89 "-" "Twisted PageGetter"
2021-04-29T09:53:11.875144194Z  2021-04-29T09:53:11+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:11 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 92 "-" "Twisted PageGetter"
2021-04-29T09:53:20.229242621Z  2021-04-29T09:53:20+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:19 +0000] "GET /jobs HTTP/1.0" 200 457 "-" "Twisted PageGetter"
2021-04-29T09:53:21.719119490Z  2021-04-29T09:53:21+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:19 +0000] "POST /schedule.json HTTP/1.0" 200 91 "-" "Twisted PageGetter"
2021-04-29T09:53:21.730339680Z  2021-04-29T09:53:21+0000 [-] Process started:  project='hyphe_test' spider='pages' job='bb7c814ca8d011eb83950242ac120003' pid=34 log='/var/log/scrapyd/hyphe_test/pages/bb7c814ca8d011eb83950242ac120003.log' items=None
2021-04-29T09:53:21.734332843Z  2021-04-29T09:53:21+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:21 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 208 "-" "Twisted PageGetter"
2021-04-29T09:53:21.874024419Z  2021-04-29T09:53:21+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:21 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 208 "-" "Twisted PageGetter"
2021-04-29T09:53:28.431130245Z  2021-04-29T09:53:28+0000 [-] Process finished:  project='hyphe_test' spider='pages' job='bb7c814ca8d011eb83950242ac120003' pid=34 log='/var/log/scrapyd/hyphe_test/pages/bb7c814ca8d011eb83950242ac120003.log' items=None
2021-04-29T09:53:30.298659577Z  2021-04-29T09:53:30+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:29 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 239 "-" "Twisted PageGetter"
2021-04-29T09:53:31.874986198Z  2021-04-29T09:53:31+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:31 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 239 "-" "Twisted PageGetter"
2021-04-29T09:53:40.299334122Z  2021-04-29T09:53:40+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:39 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 239 "-" "Twisted PageGetter"
2021-04-29T09:53:41.874725343Z  2021-04-29T09:53:41+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:09:53:41 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 239 "-" "Twisted PageGetter"

Merci !

junfan59 commented 3 years ago

Je viens de mettre à jour avec le correctif mais j'ai toujours le même problème.

Voici les logs depuis mise à jour :

2021-04-29T10:14:47.259843447Z  2021-04-29T10:14:47+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:10:14:46 +0000] "POST /schedule.json HTTP/1.0" 200 91 "-" "Twisted PageGetter"
2021-04-29T10:14:47.659522687Z  2021-04-29T10:14:47+0000 [-] Process started:  project='hyphe_test' spider='pages' job='b9ba8f42a8d311eb97770242ac120003' pid=43 log='/var/log/scrapyd/hyphe_test/pages/b9ba8f42a8d311eb97770242ac120003.log' items=None
2021-04-29T10:14:49.244811751Z  2021-04-29T10:14:49+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:10:14:48 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 355 "-" "Twisted PageGetter"
2021-04-29T10:14:54.380767862Z  2021-04-29T10:14:54+0000 [-] Process finished:  project='hyphe_test' spider='pages' job='b9ba8f42a8d311eb97770242ac120003' pid=43 log='/var/log/scrapyd/hyphe_test/pages/b9ba8f42a8d311eb97770242ac120003.log' items=None
2021-04-29T10:14:59.241811670Z  2021-04-29T10:14:59+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:10:14:58 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 388 "-" "Twisted PageGetter"
2021-04-29T10:15:09.245098598Z  2021-04-29T10:15:09+0000 [twisted.python.log#info] "172.18.0.4" - - [29/Apr/2021:10:15:08 +0000] "GET /listjobs.json?project=hyphe_test HTTP/1.0" 200 388 "-" "Twisted PageGetter"
boogheta commented 3 years ago

Il est possible que la nouvelle version ne suffise pas à régler le souci si on repart du meme corpus, pouvez-vous réessayer ainsi:

cd hyphe
git pull
docker-compose down
docker system prune
docker-compose pull
docker-compose start

Puis recréer un corpus et réessayer. Merci

junfan59 commented 3 years ago

Merci :) La dernière commande tombe en erreur :

Starting mongo    ... failed
Starting crawler  ... failed
Starting backend  ... failed
Starting frontend ... failed
ERROR: No containers to start
ERROR: 1

Edit : Par contre sudo docker-compose up -d fonctionne...

Edit 2 : docker-compose start fonctionne après avoir fait sudo docker-compose up -d

Je tente de créer un nouveau corpus :)

junfan59 commented 3 years ago

toujours unsuccessful :/

Voici les logs :

2021-04-29T14:01:03.953766516Z  2021-04-29T14:01:03+0000 [twisted.python.log#info] "172.19.0.4" - - [29/Apr/2021:14:01:03 +0000] "GET /listjobs.json?project=hyphe_test3 HTTP/1.0" 200 239 "-" "Twisted PageGetter"
2021-04-29T14:01:04.110134777Z  2021-04-29T14:01:04+0000 [twisted.python.log#info] "172.19.0.4" - - [29/Apr/2021:14:01:03 +0000] "GET /jobs HTTP/1.0" 200 709 "-" "Twisted PageGetter"
2021-04-29T14:01:04.372085285Z  2021-04-29T14:01:04+0000 [twisted.python.log#info] "172.19.0.4" - - [29/Apr/2021:14:01:03 +0000] "POST /schedule.json HTTP/1.0" 200 91 "-" "Twisted PageGetter"
2021-04-29T14:01:04.640374229Z  2021-04-29T14:01:04+0000 [-] Process started:  project='hyphe_test3' spider='pages' job='56522e87a8f311ebba550242ac130003' pid=48 log='/var/log/scrapyd/hyphe_test3/pages/56522e87a8f311ebba550242ac130003.log' items=None
2021-04-29T14:01:11.568292180Z  2021-04-29T14:01:11+0000 [-] Process finished:  project='hyphe_test3' spider='pages' job='56522e87a8f311ebba550242ac130003' pid=48 log='/var/log/scrapyd/hyphe_test3/pages/56522e87a8f311ebba550242ac130003.log' items=None
2021-04-29T14:01:13.948249043Z  2021-04-29T14:01:13+0000 [twisted.python.log#info] "172.19.0.4" - - [29/Apr/2021:14:01:13 +0000] "GET /listjobs.json?project=hyphe_test3 HTTP/1.0" 200 388 "-" "Twisted PageGetter"

Merci

junfan59 commented 3 years ago

est-ce que l'authentification de type htaccess devant ma VM hyphe y serait pour quelque chose ? Je ne pense pas mais bon...

junfan59 commented 3 years ago

Alors je pense que la VM n'est pas accessible de l'extérieur... ceci pourrait expliquer cela... Mais dans ce cas, ne devrait-il pas y avoir une erreur ?

Je vais voir avec mes collègues du réseau... Si c'est ca je suis désolé pour le temps passé inutilement (ou presque puisque cela m'a permit de savoir qu'il y avait une mise à jour à faire).

Je vous tiens informé. Merci beaucoup !

junfan59 commented 3 years ago

En fait ca ne devrait pas poser de problème puisque c'est le crawler qui accède à l'extérieur vers le site à indexer.... la VM est inaccessible de l'extérieur vers l'intérieur mais rien n'empêche la VM de sortir...

junfan59 commented 3 years ago

Bonjour, Y a t-il des ports particuliers à ouvrir même si j'ai configuré le port 8080 dans le fichier .env ? Ou peut-être suis-je partis sur une mauvaise piste ? Merci

boogheta commented 3 years ago

Bonjour,

A priori si les connections sortantes marchent bien sans souci, l'accès htaccess a votre VM ne devrait rien changer effectivement. Il n'y a pas de port en particulier a ouvrir à priori non plus. Eventuellement il peut y avoir un problème lié à un proxy que vous auriez configuré dans config-backend.env peut-être?

Autremenent il faudrait essayer de regarder le log des crawls qui ne renvoient rien, pouvez vous aller regarder dans le conteneur du crawler le log du crawl en question et le partager ici (docker-compose exec crawler cat /var/log/scrapyd/hyphe_test-8/pages/6cd1be12a82e11eba0840242ac130003.log)?

junfan59 commented 3 years ago

Bonjour, Merci pour la réponse :) J'y suis finalement arrivé en configurant le proxy dans les settings de Hyphe. Par contre le crawl ne dépasse jamais 1 page... Y a t-il une configuration à faire que j'aurais loupé ?

Edit : A noter que je n'ai pas de dossier scrapyd dans /var/log/ ...

boogheta commented 3 years ago

Concernant /var/log c'est normal, il s'agit du /var/log à l'intérieur du conteneur docker, accessible via la commande docker-compose exec que je proposais.

Voir le contenu de ces logs resterait utile pour vérifier le problème avec les crawls, ce n'est pas normal que cela se limite à une page si la crawl depth est supérieure à zéro. ces crawls d'une page renvoient-ils des liens tout de même (y a t til des entités discovered créées) ?

boogheta commented 3 years ago

I'm closing this no more updated issue, don't hesitate and reopen if it remains relevant