Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 23-06-2016 13:48:22

mimi
Membre
Distrib. : Poutoux 0.2
Noyau : Linux 3.16.0-4-amd64
(G)UI : openbox
Inscription : 13-05-2016
Site Web

Recherche dans un fichier

Bonjour, je suis en train de faire un script bash qui télécharge le code source d'une page Internet et j'aurais besoin d'isoler un lien dans la page.
Le problème je suis très mauvais en recherche dans un fichier et ne connais pas de bon tutoriel simple, donc voici le bout de code(source http://www.franceculture.fr/emissions/d … -services):

<div class="title-zone title-zone-diffusion">
<div class="icon-wrapper">
<div class="player-inline play-wrapper play-wrapper-aod">
<a href="http://media.radiofrance-podcast.net/podcast09/10175-22.06.2016-ITEMA_21016122-0.mp3" class="player-button icon icon-play-circle btn-play aod" data-asset-xtname="Extrait::Traite_TiSA_:_a_qui_profiterait_la_liberalisation_des_services_?::Traite_TiSA_:_a_qui_profiterait_la_liberalisation_des_services_?" data-asset-title="Traité TiSA : à qui profiterait la libéralisation des services ?" data-asset-surtitle="Du Grain à moudre" data-asset-source="http://media.radiofrance-podcast.net/podcast09/10175-22.06.2016-ITEMA_21016122-0.mp3" data-duration="2400" data-title-link="/emissions/du-grain-moudre/traite-tisa-qui-profiterait-la-liberalisation-des-services" data-surtitle-link="/emissions/du-grain-moudre" data-business-reference="10582" data-short-id="12adb7af">
<div class="text-icon ecoute">Écouter</div>
<div class="text-icon pause">Pause</div>



et dans ce code j'ai besoin d'isoler:

http://media.radiofrance-podcast.net/podcast09/10175-22.06.2016-ITEMA_21016122-0.mp3



Si quelqu'un est meilleur que moi ou a un bon tuto je suis preneur.

@++

Hors ligne

#2 23-06-2016 15:17:51

Firy
Membre
Distrib. : Debian Jessie 8.3
Noyau : 3.16.0
(G)UI : Openbox
Inscription : 22-01-2016

Re : Recherche dans un fichier

Si tu cherches simplement à isoler cette partie du code, sans récursion sur d'autres fichiers, je te propose ceci.

cat ton_fichier | grep "<a" | cut -d \" -f 2



Si tu as besoin d'isoler plusieurs url, il faudrait donner plus d'informations sur la forme.

Dernière modification par Firy (23-06-2016 15:18:16)

Hors ligne

#3 23-06-2016 15:23:13

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : Recherche dans un fichier

Salut,

Le lien que tu donnes est invalide mais en se basant sur la page rss du grain à moudre, ce code fonctionne :

#!/bin/bash

fichier=/tmp/rss_grain.html
wget  http://radiofrance-podcast.net/podcast09/rss_10175.xml -O $fichier
grep mp3 $fichier | awk -F '"' '{print $2}'
rm $fichier
 



J'avais posté un script python qui fait ce que tu demandes ici (et même un peu plus)

Tu peux t'inspirer du script ou même l'essayer smile

(fichier podrf.py pour récupérer les mp3, fichier rss_culture.py pour récupérer les flux rss)

Hors ligne

#4 23-06-2016 16:23:45

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : Recherche dans un fichier

wlourf a écrit :

…Le lien que tu donnes est invalide…

C'est vrai, il faudrait juste déplacer la parenthèse fermante (qui est en trop à la fin du nom du lien) => Dans son message,
mimi devrait remplacer :

…des-services)[/url]:


par

…des-services[/url]) :



=======
Le texte du lien recherché est situé sur la 3ème ligne de la page web qui suit la ligne contenant <div class="title-zone title-zone-diffusion">
et il est précédé par <a href=" qui est situé en début de ligne,
et suivit par " class

La ligne de commandes suivante permet d'extraire le lien demandé (si la page web ciblée existe encore et si elle n'a pas trop été modifiée entre temps) :

curl http://www.franceculture.fr/emissions/du-grain-moudre/traite-tisa-qui-profiterait-la-liberalisation-des-services 2>/dev/null | \
sed -n '/^<div class="title-zone title-zone-diffusion">$/{n;n;n;s/^<a href="\(.*\)" class.*/\1/p}'



EDIT : J'avais oublié un été et mis un point-virgule en trop dans la ligne de commandes.

Dernière modification par MicP (24-06-2016 06:44:12)

Hors ligne

#5 23-06-2016 18:52:02

mimi
Membre
Distrib. : Poutoux 0.2
Noyau : Linux 3.16.0-4-amd64
(G)UI : openbox
Inscription : 13-05-2016
Site Web

Re : Recherche dans un fichier

MicP a écrit :

wlourf a écrit :

…Le lien que tu donnes est invalide…

C'est vrai, il faudrait juste déplacer la parenthèse fermante (qui est en trop à la fin du nom du lien) => Dans son message,
mimi devrait remplacer :

…des-services)[/url]:


par

…des-services[/url]) :



=======
Le texte du lien recherché est situé sur la 3ème ligne de la page web qui suit la ligne contenant <div class="title-zone title-zone-diffusion">
et il est précédé par <a href=" qui est situé en début de ligne,
et suivit par " class

La ligne de commandes suivante permet d'extraire le lien demandé (si la page web ciblée existe encore et si elle n'a pas trop modifiée entre temps) :

curl http://www.franceculture.fr/emissions/du-grain-moudre/traite-tisa-qui-profiterait-la-liberalisation-des-services 2>/dev/null | \
sed -n '/^<div class="title-zone title-zone-diffusion">$/{n;n;n;s/^<a href="\(.*\)" class.*/\1/p;}'




Merci beaucoup cela fonctionne parfaitement.

Hors ligne

#6 23-06-2016 18:56:48

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : Recherche dans un fichier


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

Pied de page des forums