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(‘https://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, l'outil couplé à Tor pour vous rendre anonyme sur InternetPrivoxy 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

Tor, un réseau de serveurs pour vous rendre anonyme sur InternetLà-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 . Leur configuration est en tout point similaire à ce que j’ai pu indiquer pour Linux. Elle se réalise à partir des fichiers suivants :

 

OSS / , , , , , , , , , ,