Bonjour à tous,

Depuis la dernière mise à jour de FreshRss, il est possible de faire du scrapping de site web avec xpath afin de créer des flux rss pour les sites qui n’en n’ont pas.

Plus de détail ici : https://danq.me/2022/09/27/freshrss-xpath/

J’ai mis en place ce principe pour récupérer des infos sur le site de la mairie et celui de la com’com.

Je bloque sur un troisième, le site de l’office de tourisme (pour récupérer l’agenda culturel). J’aurais besoin d’aide afin de m’en dépatouiller. Je ne sais pas si je suis au bon endroit. Mais si vous savez vers quelle communauté je pourrais me tourner pour résoudre ce soucis, n’hésitez pas à me le dire.

Un peu de contexte.

Lors de son chargement, le site de l’office de tourisme charge dans un premier temps le html, mais sans les événements de l’agenda. Ces événements sont présents sur la page, mais dans une balise script sous forme d’un json stocké dans une variable item.

Une autre requête POST est ensuite effectuée avec en paramètre ce json pour le mettre en forme (html) puis l’insérer dans le corps de la page.

À partir de là, le scrapping se complexifie, auriez-vous une idée de comment récupérer ce json pour le transformer en quelque chose qui ressemblerais à un flux atom/rss/json ?

Je pensais faire un script bash, mais je suis un peu perdu avec xmlint, xisdel et jq.

C’est peu être un peu ambitieux, qu’en pensez-vous ?

  • ObercailOP
    link
    fedilink
    Français
    arrow-up
    2
    ·
    11 months ago

    Je l’ai eu :

    curl -s https://www.office-tourisme.fr/agenda/ | grep "var items =" | sed -E 's/var items = (\[.*\]);/\1/gm;t'  | jq '{"version":"https://jsonfeed.org/version/1.1", "title":"Office de tourisme", "home_page_url": "https://example.org/", "feed_url": "https://example.org/feed.json","items": [ .[] | {id: .id, title: .titre, url: .link, content_text: .content}]}'
    

    Il ne manque plus que FreshRss supporte jsonFeed, mais ca ne saurait tarder : https://github.com/FreshRSS/FreshRSS/pull/5662