Vérifier les liens cassés sur une page avec Google Docs

écrit par Aymeric

google apps scriptAyant découvert depuis peu Google Apps Scripts qui permet de faire interagir les différentes API Google via un langage assez similaire au Javascript, je tenais à partager avec vous un petit script trouvé sur un autre blog qui permet de vérifier le status HTTP d'une liste d'URL.

Cet article est plus un POC ("Proof of Concept") qu'autre chose, afin d'éveiller votre esprit sur les possibilités de Google Docs & Google Apps Script

Liste d'URLs

Dans cet exemple, nous allons voir comment vérifier le status HTTP d'une liste d'URLs déjà existantes à l'intérieur d'une page (ex: liens sortants dans une page de partenariats)

1 - Créez une nouvelle feuille de calcul dans Google Docs.

2 - Mettre l'URL de la page pour laquelle vous souhaitez vérifier le status HTTP des liens dans la première cellule A1.

3 - On va importer l'ensemble des URL des liens de la page grâce à la fonction ImportXML et Xpath dans la cellule A4: =ImportXML(A1;"//a/@href")
(oui, j'aime bien laisser des lignes vides, simple superstition)

xpath import xml

4 - Afin d'y voir plus clair, nous allons également importer les textes d'ancre des liens de la même manière dans la cellule B4: =ImportXML(A1;"//a")

textes d'ancre via Xpath

La feuille de calcul présentée ci-dessus est disponible ici : https://docs.google.com/spreadsheet/ccc?key=0AnVSDGf8iHH-dGpoMkVQd2V0c2lwbks4d21PT1RCRFE

5 - Copiez maintenant l'enemble des valeurs obtenues dans une nouvelle feuille de calcul sur Google Docs

6 - Modifier les URL relatives dans la nouvelle feuille afin de n'obtenir que des URL absolues (/scripts-seo deviendra http://www.yapasdequoi.com/scripts-seo)

Récupérer les codes de status HTTP

7 - Afin de pouvoir récupérer le status de chacune de nos URL obtenus, nous allons créer un script:
Menu "Outils" > Editeur de scripts

google apps scripts

Voici le script à copier/coller dans l'éditeur:

function HTTPResponse( uri )
{
  var response_code ;
  try {
    response_code = UrlFetchApp .fetch( uri ) .getResponseCode() .toString() ;
  }
  catch( error ) {
    response_code = error .toString() .match( / returned code (\d\d\d)\./ )[1] ;
  }
  finally {
    return response_code ;
  }
}

La class UrlFetchApp permet de récupérer les réponses HTTP lors de l'appel d'une URL donnée. Nous allons récupérer le status code via getResponseCode().

8 - Enregistrez le script ainsi créé avec un nom de projet comme "HTTPResponse" par exemple.

9 - Placez vous dans une nouvelle colonne (sur la nouvelle feuille de calcul avec l'ensemble des URLs) en appelant la fonction qui vient d'être crée: =HTTPResponse(A1)
(L'URL étant Colonne A ligne 1)

http response google docs

Et après?

Il ne vous reste plus qu'à regarder la magie opérée en déroulant l'appel de cette fonction HTTPResponse sur toute la colonne.

On peut imaginer d'autres scripts comme surveiller l'ensemble de ses sites dans une même feuille de calcul sur Google Docs par exemple. Bref, ceci était une approche non exhaustive de Google Apps Script pour vous familiariser avec son langage et ses possibilités.

Libre recours à votre imagination pour la suite 😉

Source de cet article: http://www.tinkeredge.com/blog/2012/04/check-on-page-for-broken-links-with-google-docs/

écrit dans Astuces par Aymeric | 13 commentaires

13 commentaires "Vérifier les liens cassés sur une page avec Google Docs"