Configuration de Privoxy et Tor pour le scrapping
Si j’ai omis de qualifier le scrapping dans mon article d’hier consacré à cURL, c’est que j’avais l’intention de vous en parler dans cet article consacré à Privoxy et Tor.
Le scrapping
Le scrapping est une technique d’extraction des contenus des pages issues des requêtes Http, que vous réalisez habituellement à partir de vos navigateurs. L’objet est de disposer des informations contenues dans les pages, en utilisant notamment les expressions régulières.
L’exemple ci-dessous vous montre, en PHP, comment, à l’aide des expressions régulières et l’instruction preg_match, extraire les contenus de la balise title d’une page et de la balise meta description.
<?php require 'curl.class.php'; ini_set('display_errors', 1); $oCurl=new Curl(); $html=$oCurl->execHttp('http://www.dsfc.net/'); if(preg_match('/<title>([^<]+)<\\/title>/i',$html,$title)) { echo $title[1]."\\n"; } if(preg_match('/<meta name="description" content="([^"]+)"/i',$html,$description)) { echo $description[1]."\\n"; } unset($oCurl); ?>
Configuration de Tor et de Privoxy
Tor est un réseau de serveurs proxy dont l’objet est de vous garantir l’anonymat sur Internet. L’ajout d’un serveur dans ce réseau se heurte à de nombreuses législations nationales, comme celle de la France qui exige d’un fournisseur de services Internet qu’il consigne l’activité au niveau de ses services durant 1 année, selon le décret n°2006-358 du 24 mars 2006. En revanche, il n’est pas encore illégal de s’en servir, notamment quand il s’agit de scrapper les pages de résultats des moteurs de recherche. ;+)
Sous Linux Centos, vous devez préalablement installer les paquets avec la commande yum install privoxy tor.
Privoxy
Privoxy est avant tout un proxy dont l’intérêt réside dans la modification et/ou la suppression des en-têtes envoyés par le navigateur. Vous pouvez aussi vous en servir comme simple proxy. La configuration de Privoxy, sous Linux, se fait à partir du fichier /etc/privoxy/config. Pour le coupler à Tor, vous devez ajouter ou décommenter la ligne afin que Privoxy relaie vos requêtes http ou https vers Tor :
forward-socks5 / 127.0.0.1:9050 .
Vous devez ensuite relancer votre service : service privoxy restart ou /etc/init.d/privoxy restart.
Tor
Là-encore, bien peu de choses à faire, en vérité. Vous devez vous assurer que les deux lignes suivantes du fichier /etc/tor/torrc soient bien décommentées :
SocksPort 9050 # Port sur lequel Tor écoute SocksListenAddress 127.0.0.1 # Limitation de l'utilisation de Tor au localhost
Forcer le changement de serveur, le changement d’ip
Afin de ne pas être blacklisté par les serveurs sur lesquels vous vous adonnez à vos activités de scrapping, vous pouvez forcer votre « identité » sur le réseau Tor. Vous pouvez faire le choix de redémarrer le service Tor, sans avoir la garantie de changer de serveur. Le redémarrage exige que vous vous resynchronisiez !
Modification de la configuration de Tor
Vous devez ouvrir, préalablement, le port de contrôle dans le fichier de configuration /etc/tor/torrc :
ControlPort 9051
Code PHP pour renouveler votre identité
Je tiens à préciser que je ne suis pas l’auteur de ce code. Je l’ai simplement quelque peu adapté.
$fp = fsockopen('127.0.0.1', '9051', $errno, $errstr, 30); if (!$fp) die("impossible de se connecter au port de contrôle"); fputs($fp, "AUTHENTICATE\\r\\n"); $response = fread($fp, 1024); list($code, $text) = explode(' ', $response, 2); if ($code != '250') die("L'authentification a échoué."); //Envoie d'une requête pour obtenir une nouvelle identité fputs($fp, "signal NEWNYM\\r\\n"); $response = fread($fp, 1024); list($code, $text) = explode(' ', $response, 2); if ($code != '250') die('Echouage en eau profonde'); fclose($fp);
Tor et Privoxy sur Windows
Tor et Privoxy fonctionnent très bien sur Windows. Vous pouvez les télécharger respectivement ici et là. Leur configuration est en tout point similaire à ce que j’ai pu indiquer pour Linux. Elle se réalise à partir des fichiers suivants :
- C:\\Program Files (x86)\\Privoxy\\config.txt, pour Privoxy, sous un Windows 64 bits
- C:\\Program Files\\Privoxy\\config.txt, pour Privoxy, sous un Windows 32 bits
- %USERPROFILE%\\AppData\\Roaming\\Tor\\torrc, pour Tor