Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export all crawled URLS #442

Open
g-arcas opened this issue Mar 7, 2022 · 10 comments
Open

Export all crawled URLS #442

g-arcas opened this issue Mar 7, 2022 · 10 comments

Comments

@g-arcas
Copy link

g-arcas commented Mar 7, 2022

Est-il possible d'exporter la liste de toutes les URLs complètes crawlées par Hyphe ?

Je précise "complètes" parce que la fonction EXPORT de l'interface Web de Hyphe ne semble pas le faire.

@boogheta
Copy link
Member

boogheta commented Mar 7, 2022

Comme l'indique la page EXPORT, celle-ci vise uniquement à exporter les métadonnées des webentités, pas de récupérer les données ni sur le réseau ni sur les pages web.
À ce jour l'interface web ne permet pas d'exporter de liste de pages, cela n'est possible qu'au travers de l'API webentité par webentité : https://github.com/medialab/hyphe/blob/master/doc/api.md#pages-links-and-networks.
C'est une fonctionnalité qui pourrait être utile à ajouter effectivement.
Mais en attendant, si vous utilisez une instance locale de hyphe, depuis le dossier d'installation vous pouvez faire cela ainsi (depuis l'environnement python dans lequel les dépendances de hyphe ont été installées:

# Pour récupérer un fichier json contenant la liste formatée des pages crawlées de l'entité MA_WEBENTITY_ID du corpus MON_CORPUS_ID
python hyphe_backend/test_client.py store.get_webentity_pages json MA_WEBENTITY_ID True MON_CORPUS_ID > MA_WEBENTITY_ID_pages.json

# Pour récupérer un fichier texte contenant juste la liste des urls des pages crawlées de l'entité MA_WEBENTITY_ID du corpus MON_CORPUS_ID
python hyphe_backend/test_client.py store.get_webentity_pages MA_WEBENTITY_ID True MON_CORPUS_ID | grep "'url':" | awk -F "'" '{print $4}'

@g-arcas
Copy link
Author

g-arcas commented Mar 7, 2022

Merci, je vais tenter ça !

@g-arcas
Copy link
Author

g-arcas commented Mar 10, 2022

Bonjour.

Visiblement il y a un "truc" qui cloche, et je me demande si ce n'est pas parce que sur ma machine (Ubuntu 20.04) c'est python3 qui est installé par défaut.
Mais en testant sur une autre machine après avoir installé python 2, je n'ai pas plus de succès. :-(

@Yomguithereal
Copy link
Member

Sinon il me semble que notre outil minet a une commande hyphe dump qui correspond peut-être à ce que vous cherchez à faire: https://github.com/medialab/minet/blob/master/docs/cli.md#dump ?

@g-arcas
Copy link
Author

g-arcas commented Mar 10, 2022

Alors oui, c'est ce que je me suis dit et j'ai en effet installé minet.
Seul "hic" : où puis-je trouver le corpus_id qu'il faut passer en paramètre ?
Je trouve les webentities_id mais ce corpus_id, mystère et boules de gomme.

@g-arcas
Copy link
Author

g-arcas commented Mar 10, 2022

Alors en fait je confonds les deux scripts.
minet me retourne no corpus existing with ID test alors que j'ai bien un corpus qui porte le nom test.
Mais le "ID" me fait penser qu'il faut peut-être passer à minet l'ID du corpus et pas son nom.
D'où le fait de trouver où se trouve cet ID.

@boogheta
Copy link
Member

@g-arcas une fois en python2 il faut que tus utilises l'environnement python de hyphe pour avoir toutes les dépendances.
Mais sinon effectivement avec minet cela devrait marcher plus simplement. Le corpus_id est le texte dans l'url de l'interface entre slash après project, par exemple dans https://hyphe.medialab.sciences-po.fr/demo/#/project/77test/overview corpus_id est 77test

@g-arcas
Copy link
Author

g-arcas commented Mar 10, 2022

ok, trouvé : il faut passer le nom du corpus en minuscules même si dans Hyphe il est défini en majuscules !

@boogheta
Copy link
Member

id ≠ nom :)

@g-arcas
Copy link
Author

g-arcas commented Mar 10, 2022

Oui et en effet minet marche très bien (en plus il peut être installé sur une autre machine).
C'est le "corpus-name" de l'exemple qui m'a mis sur une mauvaise piste.

Merci pour votre aide !

@boogheta boogheta self-assigned this Dec 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants