Il y a quelques personnes qui me posent des questions à propos de googol, du coup, je fais une petite page pour résumer à quoi je me suis heurté et où j'en suis de mes tentatives...
À l'origine
Googol était un simple script destiné à s'intercaler entre google et l'usager afin que ce dernier ne donne aucune information au géant du web:
En gros, l'usager envoie sa requête à googol, googol formule l'URL de requête vers Google, récupère les infos pertinentes sur la page de réponse, génère une page propre (sans aucun lien extérieur vers google, sans pub etc) et la restitue à l'usager.
Lien
Toutefois...
Google ne facilite pas la tâche: ses pages changent régulièrement (et il faut adapter le parseur) et il finit par bannir mon serveur googol quand trop de requêtes viennent de lui.
J'ai donc un temps opté pour la transmission de la requête vers DDG puis j'ai préféré modifier Googol en profondeur pour qu'il puisse changer son moteur en interne: j'ai donc créé une classe google.php et une startpage.php pour que googol puisse changer de lui-même le temps du débannissement. Lien
Oui mais, bon... voilà.
Startpage s'est mis lui aussi à me bannir et à me renvoyer un captcha... Lien
Je me démonte pas...
... et je me lance dans l'ajout d'un troisième moteur selon le même principe: Qwant...
A ce stade, ça fonctionnait... Mais...
- ... ben ça fait quand même trois moteurs différents à maintenir (parseur+URLs etc)
- vu le rythme de bannissement, seul qwant était utilisé... Du coup, l'intérêt du cript ne saute pas aux yeux.
C'est reparti pour une réflexion
Là je prends le problème dans l'autre sens: au lieu de changer de moteur, je pourrais changer de serveur...
C'est une piste que j'avais explorée à une époque en faisant une sorte de chaîne de Googol qui se renvoyaient la requête.
Le problème, c'est que multiplier les googols, c'est multiplier la maintenance: c'est lourd, peu élégant et pas satisfaisant.
Surtout qu'il suffirait de faire transiter la requête par un relais pour que google ne voie plus l'adresse IP du serveur Googol !
Je pars donc sur un script tout con qui curl l'adresse envoyée en GET et retourne la page. C'est bourrin, c'est pas sécurisé du tout, mais OSEF, c'est pour tester...
if (isset($_GET['url2get'])){
$url=urldecode($_GET['url2get']);
$content=file_curl_contents($url);
$content=str_replace(['<script',''],'',$content);
echo $url.$content;
}
Je place ledit script sur trois serveurs de test gratuits (un vieux free qui traînait et deux de chez byethost33).
On a donc:
Et là, c'est le drame
Quand je teste, aucun résultat de revient. La page renvoyée est vide ou presque.
Alors, je teste en copiant l'URL générée par Googol et en la faisant transiter à la main par le relais avec une url du genre:
http://www.googol.byethost9.com/?url2get=https%3A%2F%2Fwww.google.com%2Fsearch%3Fnum%3D100%26source%3Dlnms%26id%3Dhp%26start%3D0%26q%3Dtest
Et là, j'obtiens bien une page de résultats.
J'en suis là...
Donc, quand googol interroge le relais qui interroge google, il renvoie une page vide mais quand je tape directement dans le navigateur l'adresse que googol utilise pour appeler le relais, ça fonctionne.
J'ai vérifié l'URL et j'ai viré le javascript (dans mon navigateur et dans la page) histoire d'être certain qu'il ne s'agit pas d'une requête ajax impossible à faire en backend.
EDIT :
Après avoir testé d'autres hébergeurs gratuits, j'en ai trouvé un pour qui ça marche... donc, ce sont les hébergeurs qui chient dans la colle quand on y accède via curl...
Il va falloir que je trouve d'autres serveurs pouvant héberger un script de relais...
<link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/style.css"/>
<link rel="stylesheet" href="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.css"/>
<script src="http://www.warriordudimanche.net/./plugins/Galart/assets/lightbox.js"></script>
<script>[].forEach.call(document.querySelectorAll("[lightbox]"), function(el) { el.lightbox = new Lightbox(el);});</script>
► Commentaires