Authoriser GoogleBot à crawler certains contenus de votre site sous Django avec Reverse DNS Lookup


Si vous avez du contenu rich media que vous voulez le faire indexer par Google vous allez devoir proposer dans votre Sitemap un lien vers votre contenu video ou image. Et vous n’avez certainement pas envie que tout le monde puisse puiser dedans.

D’après La doc Google, le rich media c’est l’avenir, micro-datas, sitemap video, etc… faut être à la page.
Du coup vous avez envie que votre contenu se retrouve indexé par Google et rien que lui, ou pas lui et rien que Yahoo, ou pas Yahoo et rien que Bing, ou pas que Bing mais rien que Yahoo et Google et aussi un peu Bing finalement mais surtout pas Da silva…Je l’aime pas Da silva

Google conseille d’utiliser le Reverse DNS lookup. En gros de récupérer le nom de domaine du robot en fonction de l’IP qui vous crawle.

On fait une fonction qui check l’ip et on gère le retour dans la vue Django:

def allowed_bot(ip):
    """
        Do a reverse dns lookup on IP to get domain 
        and check if it is a bot from know search engines
    """
    allowed_bots = ['.msn.com', '.yahoo.com', '.googlebot.com']
    try:
        socket.setdefaulttimeout(5)
        host = socket.gethostbyaddr(ip)[0]
    except socket.herror:
        return False
 
    for bot in allowed_bots:
        if host.find(bot) > 0:
            return True
 
def ma_vue(request):
    """
       redirect to video to index
    """
    ip = request.META.get('REMOTE_ADDR', None)
 
    if allowed_bot(ip): 
        return http.HttpResponseRedirect("http://monsite.com/video/meme.flv") 
    else:
        return http.http404

Cette méthode n’est pas à utiliser pour une vue qui retourne une page entière car ça ferait une requête à chaque fois, mais pour du contenu qu’on a mis à dispo dans un Sitemap comme un player flv .

Exemple de sitemap avec la balise video :

 
    <video:video>      
      <video:player_loc allow_embed="yes">http://www.monsite.com/player.swf?file=/play/76293.xml</video:player_loc>
      <video:thumbnail_loc>http://www.monsite.com/video/76293/thumbnail.jpg</video:thumbnail_loc>
      <video:title>mémé à l'île de la raie</video:title>
      <video:description>Aller mémé te laisse pas ratrapper par la raie !</video:description>
    </video:video>

Il y a d’autres solutions comme récupérer la liste de toutes les IPs des crawlers et les passer à Nginx en adaptant un peu cet article

NB: Si vous utilisez nginx en tant que proxy n’oubliez pas d’inclure proxy_set_header pour renvoyer la bonne IP du client:

location / {
  proxy_pass        http://monsite_cherrypy;
  proxy_set_header  X-Real-IP  $remote_addr;
}

30 thoughts on “Authoriser GoogleBot à crawler certains contenus de votre site sous Django avec Reverse DNS Lookup

    • Max Post author

      @Cedric

      Ha ouais merde, pas facile de jognler entre les sites de boules et les articles qu’on écrit…

  • Sam

    C’est le coup de pied au cul de Google que tu reçois quand tu crois que tu as enfin fini de designer ton site Web.

  • mentat

    Justine p’tite question : C’est normal qu’on voit pas vos derniers post sur le flux planet python fr ? Sauf erreur de ma part… (j’ai un peu mal aux yeux en ce moment !)

  • Sam

    Oui, l’AFPY nous a retiré du flux car ils ne veulent pas être assimilés à notre ligne éditoriale cochone. On a été aussi banni de Reddit et refusé du forum Django-fr.

  • Max Post author

    @mentat
    Ouais mais bonne nouvelle on vient d’être introduit dans le cercle très fermé de Têtu.com

  • Daïku

    Retiré du flux AFPY, banni de Reddit et refusé du forum Django-fr… Et l’un de vos posts les plus populaires est « Comment dynamiser la communauté Python francophone »… Ben c’est mal barré…

    • Max Post author

      @daiku

      C’est une technique Cheyenne des Galapagos. On va tellement leur manquer qu’ils vont nous suplier à plat ventre pour qu’on revienne.
      Et là on sera le Messie, Ouméo Uno ! La belette ! le Fromage de tête !

  • Réchèr

    Eh bien moi, des fois, je l’aime bien Da Silva.

    “De jolies choses passées se cognent à ma vie.
    Je n’ai pas su effacer le fond de l’écran.”

  • Samuel Martin

    Certains articles sont intéressants, vous publiez régulièrement, c’est dommage d’être bloquer pour quelques images obscènes inutiles.

  • cyp

    Avis perso mais si ils enlèvent les images (pourquoi pas..), abandonnent les exemples à l’humour potache (ça commence à faire) et adoptent un ton corporate (fatality) je viendrais certainement (beaucoup) moins consulter les articles.

    Sur Internet de la doc (chiante?) on en a déjà bien assez.
    L’intérêt de ces articles c’est qu’ils restent suffisamment léger à lire pour que je le fasse par plaisir et pour ma culture générale. Et ceux même si beaucoup de sujet n’ont pas d’intérêt direct pour moi, la preuve mon commentaire ici alors que le référencement sous Django c’est pas vraiment ma tasse de thé.

    • Max Post author

      @ cyp

      Ca n’arrivera pas, si on a fait ce blog c’est justement pour pas être comme tout le monde, la grande majorité des gens veut être “normal”, dans la ligne de conduite de la société qu’ils occupent, et surtout bien faire comme tout le monde.

      Perso je m’en cogne, une bonne chatte poilue me fait marrer, une bonne blague raciste m’éclate, j’ai pas envie que ce blog suive la lignée des Rue89, figaro, voici madame, bonjour monsieur, etc… J’aime l’humour gras de gros geek, les pouffes et le champagne.

  • Sam

    @Samuel Martin: nous ne considérons pas que ces images soient inutiles. Elles font parties du plaisir à écrire sur ce blog. Ce blog prend du temps et de l’énergie (360 articles publiés mine de rien) mais ne rapport rien. Le plaisir est la seule motivation. Si on en fait pas les choses exactement comme on veut, alors ça n’a aucune interêt.

    @cyp: merci cyp. C’est exactement notre vision des choses.

  • nzo

    tetu.com c’est pas un site pour agrandir le cercle de ses amis ça ? ok je sors –> []

  • jpcw

    Oui, l’AFPY nous a retiré du flux car ils ne veulent pas être assimilés à notre ligne éditoriale cochone.

    Je pense qu’il n’est pas inutile que nous puissions ici exprimer de façon publique (hors AFpy donc), les motivations de cette décision réfléchie et longuement discutée en interne au comité directeur.
    Partie du mail envoyé à la ML de l’AFPy concernant cette décision :

    2) retrait du blog “Sam et Max” de notre planet
    ======================================

    Le comité directeur après en avoir débattu, a décidé de retirer le feed du blog sus-visé.

    Vu le ton de certains propos, et la publication de certaines images complètement assumés par les auteurs (dans leur ligne éditoriale), que nous respectons,
    mais qui nous semble entrer en contradiction avec la portée générale du public de notre association, enfants, partenaires et autres entreprises qui nous font confiance.

    Nous les avons contactés pour leur demander vu le caractère qui peut paraitre (choquant | ou plus | ou pas) pour certains lecteurs, ce qu’ils comprennent parfaitement au demeurant,

    S’ils pouvaient envisager d’ajouter un “tag_safe” sur des articles, que nous nous contenterions de relayer. Ils ont répondu qu’ils ne voulaient pas “s’embéter” à faire cela, et comprenaient
    parfaitement que vu les éléments évoqués au dessus, nous envisagions de retirer leur feed de notre planet.

    Le feed a donc été retiré mercredi soir, malgré des articles sur Python, nombreux et d’excellente facture.

    II ne s’agit donc pas de censurer, mais de ne plus relayer automatiquement le feed sur le planet de l’AFPy.

    Merci pour la parution de ces précisions importante à nos yeux.

  • Sam

    Pas de problème, le droit de réponse est important, et on en dénigre pas l’AFPY (j’ai profité de son existance pendant des années).

    On vous a même dédié un article sur les animaux mignons (c’est de bonne guerre :-)) !

  • Sébastien Douche

    Ca n’arrivera pas, si on a fait ce blog c’est justement pour pas être comme tout le monde, la grande majorité des gens veut être “normal”, dans la ligne de conduite de la société qu’ils occupent, et surtout bien faire comme tout le monde.

    Mouhahaha. On ne peut pas faire 50m sans tomber sur une pub avec femme à poil, idem pour les clips de musique ou les films américains. Alors on repassera pour le coté rebelz. Là vous êtes juste puéril et ce genre de remarque ne fait qu’accentuer une attitude digne d’enfants qui n’ont pas fini leur puberté.

  • Sam

    @Sébastien Douche une pub ? Lol, oui on est affilié à xvideo et xhamster. Tu m’excuses, il faut que j’aille chercher ma porche chez le garagiste.

  • Cédric

    @Sam : Sebastien ne dit pas qu’il y a des pubs sur ce site, il dit juste qu’il y a déjà du p*rn partout, et qu’il n’aime pas cet humour gras.
    Quand à l’attitude puérile… bah… je dirais bien qu’il a un coup de sang.
    L’essentiel c’est que vous assumiez votre ligne, ce qui est le cas et que vous comprenez que d’autres sites ne fassent pas ce choix.
    De toute manière Sam&Max, vous vous attendiez à ce que certains soient choqués, non ? :)

    • Max Post author

      @Ced

      De toutes façons on avait pas asser “d’insultes” dans les commentaires, ça mérite un tampon d’inauguration ^^

  • Sam

    Oui, et puis c’est vrai qu’on est un peu puéril. Faut pas déconner, j’aurais pas ce genre de réactions dans ma vie de tous les jours: c’est marrant parce que c’est sur le blog, mais c’est pas vraiment constructif.

    Mais ça fait du bien ! J’économise un max en thérapie.

  • roro

    Vous vous etes faits éjectés de l’Afpy, bonne nouvelle!
    Ils bougent encore! Je pensais qu’ils étaient morts…

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.