Accéder au contenu principal

Petit moment d'exercices pratiques

 Dans cette partie (qui sera plutôt courte), on cherche à s'exercer sur l'utilisation de la commande curl.

La question se pose donc sur la fiabilité de nos URLs. Est ce que la récupération d'un URL s'est bien passé ?
On se lance donc avec l'url suivant :

yagmur@LAPTOP-7LSSEII1:~/PROJET-MOT-SUR-LE-WEB$ curl http://www.lemonde.fr -w %{http_code}

301

HTTP STATUS CODES:

1xx informational response - the resquest was received, continuing process

2xx successful - the request was successfully received, understood and accepted

3xx redirection - further action needs to be taken in order to complete the request

4xx client error - the request contains bad syntax or cannot be fulfilled

5xx server error - the server failed to fulfil an apparently valid request

Pour mieux vérifier, on procède donc de la façon suivante :

retourcurl=$(curl http://www.lemonde.fr -w %{http_code})

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

 0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

Pas de grand résultat, ça ne marche pas, surement dû à la qualité de l'URL. On va essayer d'en trouver un plus sympa. On recommence donc encore :

 retourcurl=$(curl https://www.lemonde.fr -w %{http_code})

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100  296k    0  296k    0     0  1265k      0 --:--:-- --:--:-- --:--:-- 1265k

L'url est un lien sécurisée.

Pour de meilleur résultat, on peut désormais utiliser la commande suivante :

echo $retourcurl

....</script> </body> </html> 200

Petit problème... il y a beaucoup trop de texte et il est donc difficile de trouver cette information à la fin.

On peut donc nettoyer de cette façon là :

retourcurl=$(curl -o toto.txt https://www.lemonde.fr -w %{http_code})

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100  296k    0  296k    0     0  1519k      0 --:--:-- --:--:-- --:--:-- 1519k

yagmur@LAPTOP-7LSSEII1:~/PROJET-MOT-SUR-LE-WEB$ echo $retourcurl

200

Cette fois-ci, avec ce traitement, la récupération de l'URL se passe bien ! ouf! On doit intégrer cette vérification sur les autres URLs et donc dans notre script.

Deuxième problème relevé : L'encodage des pages webs qu'on a récupéré.

Nous voulons que l'encodage soit en UTF-8. Pour vérifier cela :

yagmur@LAPTOP-7LSSEII1:~/PROJET-MOT-SUR-LE-WEB $ curl -I https://www.lemonde.fr

HTTP/2 200

content-type: text/html; charset=UTF-8

x-protected-by: Sqreen

set-cookie: critical-home-free-desktop=8a3a8b2ed6e2bb76a37f5b3f3ae30c30; expires=Tue, 05-Jan-2021 13:00:44 GMT; Max-Age=2592000; path=/; secure

x-frame-options: SAMEORIGIN

x-xss-protection: 1; mode=block

via: 1.1 google, 1.1 varnish

cache-control: private, max-age=0

accept-ranges: bytes

date: Sun, 06 Dec 2020 13:00:44 GMT

x-served-by: cache-cdg20748-CDG

x-cache: MISS

x-cache-hits: 0

x-timer: S1607259645.583316,VS0,VE65

vary: Accept-Encoding

strict-transport-security: max-age=31557600

Génial !!!
En revanche, si la page n'est pas en UTF-8, on peut traiter cette page autrement. Il faut pour cela, avoir la possibilité de récupérer les informations concernant l'encodage.

curl -I https://www.lemonde.fr | egrep "charset"

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

content-type: text/html; charset=UTF-8

On accompagne tout cela, d'un petit coup de nettoyage curl :

curl -I https://www.lemonde.fr | egrep "charset" | cut -f2 -d=

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

UTF-8


Pour utiliser ce code plus facilement, on peur le stocker dans une variable!


encodageURL=$(curl -I https://www.lemonde.fr | egrep "charset" | cut -f2 -d=)                   

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                                                                                                         

                                 Dload  Upload   Total   Spent    Left  Speed                                                                                                                           

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0     

echo $encodageURL  nous donne donc un retour.


UTF-8

On va chercher à générer un tableau par la démarche qui va suivre :

On exécute donc le script vu ensemble en cours. On a donc comme résultat :

On arencontré quelques soucis au sujet du motif. Nous ne parvenions pas à faire la séparation des urls entre les pair de langues sans faire deux tableaux séparément, et ce, même après avoir essayer le "pipe" (|) . On a fini par utiliser ceci : yagmur@LAPTOP-7LSSEII1:~/PROJET-MOT-SUR-LE-WEB$ bash ./PROGRAMMES/scritp_2020-11-18.sh ./URLS/ ./TABLEAUX/tableau.html "french kiss"

Commentaires

Posts les plus consultés de ce blog

Session 4: un french, un beso, french kissing...

Un beso con lengua, Frencher! Dans cette partie, il sera montré quelques résultats par pair de langue Nous allons commencer par présenter nos recherches en espagnol, et en français. Petite remarque avant de continuer plus loin : en espagnol, le terme "French Kiss" se traduit en espagnol par "Beso con lengua". Il sera donc ici détaillé la façon dont on a procédé pour "Beso con lengua": La première commande est pour trouver les URLs en espagnol du mot "beso con lengua" ou son autre version aussi trouvé : "beso francés". Pour le cas de "beso con lengua" Commande :  counter=0; while [ $counter -le 300 ]; do lynx -dump "https://www.google.com/search?q=suburbs&client=ubuntu&channel=fs&biw=1494&bih=657&sxsrf=ALeKk011piWSj9r1StcMMmaC2Fwkb8FqNg:1603092362766&ei=ij-NX7-dLquJjLsPzLqSsAw&start=$counter&sa=N&ved=2ahUKEwi_isy2kMDsAhWrBGMBHUydBMY4FBDy0wN6BAgWEDM">> mes_liens_bruts.txt; coun

Souci d'encodage MacOs - Lynx

Soucis encodage MacOs - Lynx  Nous faisons cette entrée pour laisser évidence d’un souci d'encodage qu’on a rencontré concernant la  commande lynx sur MacOs. En effet, nous avons remarqué dans certaines URLs aspirées qu' il y avait des rendus bizarres. Notamment pour les caractères diacrités et la c cédille (ç). Ci-dessous quelques  captures d'écran pour illustrer cette situation.      Au début, nous croyions à un souci d’encodage des URL. Nous avons donc bien ajouté dans notre script les deux boucles pour convertir les encodages reconnus avec la commande curl et detect encoding sans pour autant avoir une amélioration dans les rendus de nos pages aspirées.  Normalement, en lançant ce script, si le site n’est pas encodé en UTF-8 une erreur devrait s'afficher dans  le tableau qu’il génère au niveau de la colonne 1, mais aucune erreur ne s’affiche, au contraire il indique  que le site est bien encodé en  UTF-8.  Une vérification manuelle du charset a été effectuée sur cert

Concaténation et nettoyage du corpus.

Concaténation et nettoyage du corpus.    Cette partie de concaténation et nettoyage de corpus est clé car elle va alléger notre corpus pour pouvoir l’analyser sur Itrameur.    Pour ceux qui travaillent sur Windows, un programme pour concaténer est disponible sur icampus.  Il suffit de télécharger  le Fichier + le programme concat et de les placer dans le même dossier.  Double click  pour le lancer et cela concatène les fichiers existants dans ce répertoire.     Si ce n’est pas Windows, comment faire? Sachant qu’il faut introduire une valise au début et à la fin  de chaque fichier DUMP txt et CONTEXTES txt, nous avons appris en cours cette commande.  for file in `ls utf8_1* | tr ' ' '\n' | less`; do echo "<partie=$file>" >> CORPUS_FR.txt ; cat $file >> CORPUS_FR.txt ; echo "</partie>" >> CORPUS_FR.txt ; done En utilisant cette commande la concentration se fait facilement. Pensez à vous placer dans le  répertoire DUMP avan