A la demande de @GHBSXR (sorry je m’y ferai jamais) j’ai réalisé un script php qui va vous permettre de vérifier la ‘réputation’ de vos sites via le service WOT (Web Of Trust).
WOT permet via ses plugins chrome ou firefox ou simplement via son site web de vérifier 4 notes attribués par les internautes :
- Niveau de confiance,
- Renommée du vendeur,
- Conservation de la vie privée et
- Sécurité pour les enfants
Si vous souhaitez plus d’infos sur ce service je vous renvoi à l’article WOT de Sandrine (avec de la pub pour moi dedans
)
Vous devez pour pouvoir utiliser le script avoir un server avec php + php-curl activé, collez simplement votre liste d’urls (1 par ligne) et le script vous renverra un fichier csv qui contiendra le domaine de l’url + les informations associés sur WOT.
Attention WOT n’attribue des scores que pour les domaines et sous domaines, donc pas besoin de coller 150 urls du meme domaine, ca ne sert à rien.
Voici donc ce script :
<?php
function getDomValue($path, $html){
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xp = new DOMXPath($dom);
$nodeList = $xp->query($path);
foreach($nodeList as $domElement){
return $domElement->nodeValue;
}
return false;
}
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals, ';', '"');
}
function getHeaders(){
$headers = array();
foreach ($_SERVER as $k => $v)
{
if (substr($k, 0, 5) == "HTTP_")
{
$k = str_replace('_', ' ', substr($k, 5));
$k = str_replace(' ', '-', ucwords(strtolower($k)));
$headers[$k] = $v;
}
}
return $headers;
}
function getUrl($u){
global $proxyTab;
if($proxyTab !== false){
$proxy = $proxyTab[rand(0, count($proxyTab)-1)];
}
$head = getHeaders();
$headers = array();
$headers[] = 'Accept: '.$head['Accept'];
$headers[] = 'Accept-Language: '.$head['Accept-Language'] ;
$headers[] = 'Accept-Charset: '.$head['Accept-Charset'];
$headers[] = 'Keep-Alive: '.$head['Keep-Alive'];
$headers[] = 'Connection: '.$head['Connection'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$u);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after Ns
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );
if($proxyTab !== false){
$proxy = $proxyTab[rand(0, count($proxyTab)-1)];
$proxy = explode(':',$proxy);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]);
}
$res = curl_exec( $ch );
$info = curl_getinfo($ch);
$header = preg_replace('#^HTTP.*\n#', '', $res);
$header = substr($header, 0, $info['header_size']);
preg_match_all('#^([^:].+):\s(.+)$#mi', $header, $m);
$header = @array_combine($m[1], $m[2]);
$pattern = "#META http-equiv=['|\"]Refresh['|\"] content=['|\"][0-9]+;url=(.*?)['|\"]#si";
if(preg_match($pattern, $res, $loc)) {
$url = $loc[1];
}else{
$url = $info['url'];
}
return array($res, $info, $url, $header);
}
if(isset($_POST['txt'])){
//$proxyTab = file();
$tab = preg_split('#(\n)#',$_POST['txt']);
$results = array(array('Domain', 'Rank', 'Popularity', 'Trustworthiness', 'Vendor reliability', 'Privacy', 'Child Safety'));
foreach($tab as $t){
$t = trim($t);
if(substr($t, 0, 4) != 'http') $t = 'http://'.$t;
$u = parse_url($t);
$host = $u['host'];
if($t != ''){
$r = array();
$res = getUrl('http://www.mywot.com/en/scorecard/'.$host);
$r['domain'] = $host;
$r['rank'] = getDomValue('//ul[@id="rank"]/li[2]/span[1]', $res[0]);
$r['pop'] = getDomValue('//div[contains(@class, "popularity")]/@class', $res[0]);
preg_match('#.*popularity-([0-9]).*#', $r['pop'], $m);
$r['pop'] = $m[1];
$r['trust'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[2]/td[2]/div[1]/div[1]/div', $res[0]);
$r['rel'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[4]/td[2]/div[1]/div[1]/div', $res[0]);
$r['priv'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[6]/td[2]/div[1]/div[1]/div', $res[0]);
$r['safe'] = getDomValue('//*[@id="reputation-table"]/tbody/tr[8]/td[2]/div[1]/div[1]/div', $res[0]);
$results[] = $r;
}
}
$fp = fopen('php://memory', 'w');
array_walk($results, '__outputCSV', $fp);
rewind($fp);
$output = stream_get_contents($fp);
fclose($fp);
header('Content-type: application/vnd.ms-excel');
header('Content-disposition: attachment; filename="wotexport.csv"');
echo $output;
die();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr-fr">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>WOT checker</title>
</head>
<body>
<h1>WOT EXTRACTOR</h1>
<p>Collez votre liste d'url dans le champ texte ci-dessous et cliquez sur Go</p>
<form action="" method="post">
<textarea name="txt" style="width:500px;height:300px;"><?php echo $rt; ?></textarea>
<input type="submit" value="Go" />
</form>
</body>
</html>
PS : si vous souhaitez utiliser des proxys alors remplacer la ligne 76 par $proxyTab = array(‘ip1:port’,'ip2:port’);
Anticopie d’article facile et très éfficace
Le duplicate content est la plaie du web dirons certains, d’autres l’utilise a outrance.
Dans les deux cas cette technique ultra simple que je vais vous dévoiler vous servira.
Si vous êtes un rédacteur et que vous en avez marre de voir vos articles se faire copier par les petites mains délocalisés du web alors cette solution bloquera toutes tentative de copier / coller.
Si vous êtes une de ces petites mains alors vous comprendrez comment contourner cette technique anti plagiat.
Cette technique simple est utilisée sur moodinstitute, vous remarquerez que :
La je vous vois arriver en vous disant : Ok je désactive javascript et basta je pompe tout !
Et bien non, même sans javascript cette technique fonctionne (ok sauf sur ie
) car elle utilise aussi les css
Donc voici la soluce :
Avec ce code vous blindez l’intégralité de votre page, mais pour ne protéger qu’une partie il vous suffit de coller ca dans n’importe quelle balise à protéger.
Enjoy !
PS : Cette solution n’écartera que les noobs, mais ce sont certainement les plus nombreux. (un scrappeur digne de ce nom n’utilise pas le copié / collé)