webconsul

the best webconsul(ting)

DIY: Contentklau identifizieren

Sie sind hier: Startseite » Archiv für scraper

Seit einiger Zeit bemerke ich höhere Bot-Aktivität in meinem webconsul-Blog, weshalb ich vor einiger Zeit schon Scraperbots anhand deren User-Agents aus meinem Blog ausgeschlossen habe.

Will man aber nun Blogs/Seiten finden, die den eigenen Content übernehmen, sei es über den RSS-Feed (den man nur gekürzt ausliefern sollte) oder über Yahoo! Pipes oder was auch immer, dann kann man seine Artikel mit einem einfachen Trick in Google wiederfinden.

Dazu müsst ihr nur in eurem Theme-Verzeichnis die Artikel-Seite (index.php, page.php, article.php, single.php, …) öffnen und jeweils vor oder nach dem Aufruf von the_content() foldendes einfügen:

echo "<!-- ".md5(the_title())." -->";

Oder entsprechend mit umschließenden PHP-Tags:

<?php echo "<!-- ".md5(the_title())." -->"; ?>

Damit könnt ihr dann später nach dem jeweiligen MD5-String suchen.

md5 unique string for blog indentification

Das ist der neu eingefügte String im obig verlinkten Artikel.

Diesen tippt ihr einfach in die Google-Suche ein und falls ihr fündig werdet, wisst ihr, dass eure Content auch auf anderen Seiten publiziert wurde.

Sollte dies geschehen, solltet ihr je nach Lust und Laune einen RSS-Cloaker installieren, der je nach IP-Adresse anderen Content ausliefert. Den bösen Jungs jubelt ihr dann einfach eure SEO-Links oder Spam-Content unter, sodass sie entweder euch einen Gefallen tun oder selbst aus Google fliegen.

Be creative ;-)

PS: Ja, es gibt Möglichkeiten dies zu umgehen, aber ich will an dieser Stelle nicht erklären, wie man PHPs strip_tags() oder reguläre Ausdrücke verwendet ;-)

Böser Bot! Scraper aus Deinem Blog ausschließen

Sie sind hier: Startseite » Archiv für scraper

Seit einiger Zeit tummeln sich diverse Crawler auf meinem Blog, die meine Inhalte übernehmen und auf anderen Seiten veröffentlichen.
Das wäre ja kein Problem, wenn man das entsprechend mit angibt.

Daher habe ich nun folgende drei Schritte unternommen um automatisches Scrapen zu erschweren:

  1. RSS-Feed auf Kurzfassung umgestellt: Admin-Panel -> Einstellungen -> Lesen -> Newsfeed Kurzfassung
  2. Yoasts RSS Footer Plugin um einen Link und eine Ursprungsnotiz hinzuzufügen
  3. Die index.php von WordPress folgendermaßen modifiziert:


<?php
// Bots und Scraper ausschliessen:
function botcheck($ua) {
  $matches = array("java", "libwww", "perl", "curl");
  for($i=0; $i<sizeof($matches); $i++)
    if(stristr($ua, $matches[$i])) {
      return true;
    } else {
      return false;
    }
}

if(botcheck($_SERVER['HTTP_USER_AGENT'])) {
  echo "Böser Bot: geh weg!<br/>Falls Du doch kein Bot bist, überprüfe bitte deinen User-Agent.";
} else {
  define('WP_USE_THEMES', true);
  require('./wp-blog-header.php');
}
?>

Ist zwar im Sinne der Rechenleistung und Website-Geschwindigkeit nicht optimal, aber zumindest werden alle Bots die sich im User-Agent mit Java, Perl und vielem mehr ausgeben entsprechend mit einer Meldung abserviert.
Die Modifizierung muss direkt in der Index-Datei im WordPress-Root-Verzeichnis gemacht werden, da diese die restliche Auslieferung vorantreibt. Im WordPress Theme selbst funktioniert das nicht.

Klar, das löst nicht alle Probleme, aber zumindest erschwert es die Sache etwas und plumpes Content-Scraping funktioniert damit nun nicht mehr.

Schauen wir mal, welcher Bot zuerst seinen User-Agent umstellt ;-)

PS: Natürlich werden einige Bots auch über die robots.txt blockiert, aber Scraper halten sich leider nicht daran ;-)