php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.06.2011, 14:44  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von hjw-kunstwerk Beitrag anzeigen
Ansonsten Respekt ein gewaltiger und umfangreicher Ansatz, doch schon mal überlegt was passiert wenn ein Crawl-Delay aufgelistet ist?
Keine Ahnung. In meinem Fall würde ich einfach den RegEx erweitern (oder verallgemeinern). Den Rest könnte man so umbauen, dass beliebige Regel-Namen akzeptiert werden können, selbst die, die derzeit noch nicht existieren.

Zitat:
@fireweasel, klar!

Genau richtig erkannt, ...
Für einen richtigen Spider würde ich auf eine fertige Lösung zurückgreifen, die auch Wildcards richtig versteht, also nicht nur '*' für alle User-Agent-Typen ergänzt, sondern auch so Zeug wie 'Mozilla/*' auf die Untertypen richtig anwendet.

Zitat:
... doch möchte ich gerne ein wenig 'forschen bzw. erforschen' wie mit robots.txt umzugehen ist und welche die unbeliebtesten sind, rein aus Interesse weil ich was lernen möchte und versuche zu verstehen wie Spider mit einer robots.txt arbeiten - oder eben auch nicht.
Welche Spider die unbeliebtesten sind, ändert sich jeden Tag (Auch ein Googlebot ist bei mir schonmal Amok gelaufen). Der Trick ist, dass ein Websitebetreiber, der das ernsthaft betreibt, gar nicht erst Allow- und Disallow-Listen für sämtliche obskuren Bots vorhält, sondern einfach keine entsprechenden Ressourcen herausgibt. Und dass die trickreichen Cloaking betreiben, ist dir sicher auch bekannt. Aus dem Studium von unzähligen robots.txt-Dateien wirst du höchstens herausbekommen, dass es ...

... erstens Idioten (unter den Webmastern) gibt, die glauben, Regeln in der robots.txt würden wirken (das erinnert ein wenig an das Meta-Tags-Vodoo in HTML), ...

... und zweitens, dass jede Menge dieser Dateien Fehler enthalten, um die ein anständiger Spider irgendwie herumarbeiten muss.

Ich kann mir spannendere Freizeitbeschäftigungen vorstellen (Beruflich wird man so was kaum machen müssen, oder?).

Zitat:
Evtl. würde ich mich später daran versuchen dies für mein eigenen Backlinkchecker einzusetzen, da ich wissen will ob jemand auch mich verlinkt aus einer File bzw. einem Verzeichnis welches überhaupt in den Suchmaschinen die Möglichkeit hätte indexiert zu werden und anhand dessen kann ich mir dann möglicherweise ein Bild machen wie relevant und Bedeutsam jeweils ein Backlink sein wird.
Ich habe, ehrlich gesagt, keine Ahnung, was ein Backlinkchecker mit robots.txt-Angaben anfangen sollte. (Externe) Links würde ich üblicherweise im HTML-Quelltext vermuten ...

Zitat:
Noch ist es der Standard. http://www.robotstxt.org/orig.html
Nein, das ist eben kein Standard, sondern nur eine Sammlung von Angaben, auf die sich die größten Suchmaschinenbetreiber geeinigt haben. Und selbst die interpetieren diverse Regeln ganz unterschiedlich (Einige Infos dazu findest du auf robotstxt.org. "Böse" Bots halten sich sowieso nicht daran. Das würden sie nichtmal tun, wenn es Standard wäre.[/quote]
fireweasel ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.06.2011, 17:53  
Benutzer
 
Registriert seit: 19.05.2009
Beiträge: 38
hjw-kunstwerk befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Für einen richtigen Spider würde ich auf eine fertige Lösung zurückgreifen, die auch Wildcards richtig versteht, also nicht nur '*' für alle User-Agent-Typen ergänzt, sondern auch so Zeug wie 'Mozilla/*' auf die Untertypen richtig anwendet.
@fireweasel, ich habe bevor ich hier diesen Thread eröffnete auch Google bemüht und leider kein entsprechenden robots.txt parser in PHP für mein spezielles Vorhaben gefunden, wo ich zum einen ein Array erhalten kann welches für die weitere Verarbeitung entsprechend des jeweiligen möglichen vorhandenen User-agent mit seinen Werten wie Allow, Disallow, Sitemap und evtl. Crawl-Delay um es auf dem Server in irgendeiner Weise zu speichern. Dies abspeichern hat den Hintergrund, das ich nicht bei jedem Aufruf mir die robots.txt neu laden und parsen muss, ich gucke ob die filetime von der robots.txt mit der Hinterlegeten noch übereinstimmt und ansonsten würde es zum erneuten parsen kommen. Zum anderen auch Wildcards richtig versteht, dies geht zwar momentan noch nicht kann nun aber mir mehrere reg. Ausdrücke erstellen, welche diese Verhalten von Wildcards erkennen sollen und entsprechend verarbeiten sollen. Bin um Anregungen, Erfahrungen und Tipps sehr dankbar und aufgeschlossen.

Andere Ansätze, falls es jmd als Referentz zu diesem Thread interessiert:
http://forums.devshed.com/php-develo...hp-261878.html
http://www.the-art-of-web.com/php/parse-robots/
http://www.sphider.eu/forum/read.php?3,2740
http://www.juust.org/index.php/php-c...-parser-class/
http://www.webmasterworld.com/forum93/37.htm
http://scripts.ringsworld.com/web-se...class.php.html

Zitat:
Und dass die trickreichen Cloaking betreiben, ist dir sicher auch bekannt.
Leider ja!): Ich versuche dieses mit mehreren verschiedenen IP Adressen zu Umgehen und besuche die Seite einmal mit einer header Angabe zwecks der $_SERVER['HTTP_REFERER'] Superglobalenvariablen wie sie von einem neueren Browserhersteller mitgesendet wird und sekunden spräter mit der eigentlichen header Ausgabe meines Backlinkcheckers, die zwei Ergebnisse werden mittels eines sha1 Hashes verglichen und somit bei Erfolg TRUE ausgeben. Noch fehlt natürlich ein CSS Parser der mir evtl. 'versteckten Quellcode' also sprich nicht in der vom Browser angezeigten Ausgabe erscheint. Naja, auch da nehme ich Vorschläge gerne an.

Zitat:
... ehrlich gesagt, keine Ahnung, was ein Backlinkchecker mit robots.txt-Angaben anfangen sollte. (Externe) Links würde ich üblicherweise im HTML-Quelltext...
Ist vielleicht etwas Umständlich aber meiner Meinung nach doch von Bedeutung, ich suche selbstverständlich im HTML-Quelltext nach dem Link, zudem untersuche ich ob möglicherweise ein Attribut 'rel' mit dem Wert 'nofollow' gesetzt wurde und ich gucke auch nach ob sich da ein 'möchtegern' META-Tag robots mit den Werten 'nofollow' des Attributes 'content' vorhanden ist bzw. vielmehr nicht vorhanden ist und zuguter letzt überprüfe ich die robots.txt, ob nicht evtl. der Link dort als Disallow steht.

Zitat:
Nein, das ist eben kein Standard...
Ok, super danke für deinen Hinweis. Doch selbst wenn die 'großen' Suchmaschinenbetreiber darauf Rücksicht nehmen ist es für mich schon von Bedeutung.

Nochmals, ich bin sehr dankbar über jede Anregung.
Beste Grüße.

Geändert von hjw-kunstwerk (13.06.2011 um 18:00 Uhr).
hjw-kunstwerk ist offline   Mit Zitat antworten
Alt 14.06.2011, 12:34  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von hjw-kunstwerk Beitrag anzeigen
@fireweasel, ich habe bevor ich hier diesen Thread eröffnete auch Google bemüht und leider kein entsprechenden robots.txt parser in PHP für mein spezielles Vorhaben gefunden, ...
Dann ist anscheinend entweder PHP ungeeignet für diese Aufgabe oder PHP-Entwickler haben keinen Bedarf an solchen Werkzeugen. Wenn deine PHP-Kenntnisse sowieso ausbaufähig sind, kannst du auch eine andere (Script-)Sprache lernen, die sowas besser unterstützt. Den weiter oben erwähnten LWP-Client hat wahrscheinlich jeder schonmal im Webserver-Accesslog gesehen. Jede Python-Installation hat einen robots.txt-Parser serienmäßig eingebaut. Ruby hat einen Spider in seiner Standard-Library. Selbst in C gibts Spider, wie den Methabot, dessen Quellcode offen vorliegt. Wenn das nicht reicht, tuts vielleicht ein Blick auf die Liste der Open-Source-Web-Crawler in der WP.

Zitat:
... wo ich zum einen ein Array erhalten kann welches für die weitere Verarbeitung entsprechend des jeweiligen möglichen vorhandenen User-agent mit seinen Werten wie Allow, Disallow, Sitemap und evtl. Crawl-Delay um es auf dem Server in irgendeiner Weise zu speichern.
Zitat:
Zum anderen auch Wildcards richtig versteht, dies geht zwar momentan noch nicht kann nun aber mir mehrere reg. Ausdrücke erstellen, welche diese Verhalten von Wildcards erkennen sollen und entsprechend verarbeiten sollen. Bin um Anregungen, Erfahrungen und Tipps sehr dankbar und aufgeschlossen.
Siehe oben. In der Liste ist sicher mindestens ein Crawler dabei, der das kann.

Zitat:
Leider ja!): Ich versuche dieses mit mehreren verschiedenen IP Adressen zu Umgehen und besuche die Seite einmal mit einer header Angabe zwecks der $_SERVER['HTTP_REFERER'] Superglobalenvariablen wie sie von einem neueren Browserhersteller mitgesendet wird und sekunden spräter mit der eigentlichen header Ausgabe meines Backlinkcheckers, die zwei Ergebnisse werden mittels eines sha1 Hashes verglichen und somit bei Erfolg TRUE ausgeben.
Unter Cloaking verstehe ich, dass der Webserver jedem Client (ob Browser oder Spider ist egal) etwas passendes ausliefert (das gilt auch für die robots.txt selbst), bei unerwünschten Spidern auch schon mal eine 404-Statusmeldung. Das kannst du mit Referrer-Tricks nicht verhindern. Dazu müsstest du schon Methoden anwenden, wie sie der MSN-Spider (heute Bing) vor einiger Zeit versuchte: Der Spider kam als Browser getarnt vorbei (konnte aber an Hand der IP-Adresse trotzdem identifiziert werden). Das kam bei Websitebetreibern und SEO-Spezialexperten gar nicht gut an. Daher weiß ich nicht, ob sie sich das immer noch trauen.

Prüfsummen halte ich für wenig hilfreich. Es gibt genügend "dynamisch generierte" Web-Seiten, die bei jedem Abfruf andere Inhalte haben -- und sei es nur der aktuelle Datums-und-Zeit-Stempel irgendwo im HTML.

Zitat:
Noch fehlt natürlich ein CSS Parser der mir evtl. 'versteckten Quellcode' also sprich nicht in der vom Browser angezeigten Ausgabe erscheint. Naja, auch da nehme ich Vorschläge gerne an.
Puhh, da nimmst du dir ja was vor. An solchen Aufgaben haben selbst die großen Suchmaschinenbetreiber zu knabbern. Und wenn dein CSS-Parser fertig ist, schaltet die Webpage Teile des angezeigten Textes per JavaScript an oder aus. Das erinnert mich irgendwie an Hase und Igel.

Geändert von fireweasel (14.06.2011 um 22:44 Uhr).
fireweasel ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Algorhytmus] User Klassifizierung HCi PHP-Fortgeschrittene 4 12.05.2011 12:16
Datei für den User umbenennen... Thallius PHP Tipps 2010 5 01.11.2010 14:00
$_SESSION user mit User aus DB abgleichen josephh PHP Tipps 2010 6 10.09.2010 21:53
Logout durch Verlust der Session-ID (Zwei IDs pro User?) oriolus PHP Tipps 2010 10 12.07.2010 01:32
Auf Array zugreifen bringt fehler SteiniKeule PHP Tipps 2010 10 08.04.2010 15:13
LOCK tables... Samhayne Datenbanken 41 18.02.2010 11:15
User Agent Browser Auswertung doublex PHP Tipps 2009 5 15.09.2009 06:56
Projekt: User über Intranetpage erstellen, auf einen VoIP-Server beta1234 PHP Tipps 2009 2 22.07.2009 13:21
User mit PHP aus DB löschen MistaJ PHP Tipps 2008 10 01.12.2008 19:38
User Agent erkennen Papst PHP Tipps 2008 3 15.10.2007 14:47
Session: Untersch. Seiten f. eingeloggte User und norm. User PHP Tipps 2005-2 2 20.07.2005 12:46
[Erledigt] MySQL user rausfinden Datenbanken 4 26.05.2005 12:15
[Erledigt] PHP linux user wechseln PHP-Fortgeschrittene 12 05.12.2004 16:11
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
user agent php, useragent parsing c#, robots.txt böse bot hält sich nicht dran, php parse robots txt, php parse robots.txt, php useragent parsing, cloaking php $_server[\http_referer\], php bing parsen, php user agent, parsing robots.txt php, metatags von php herausbekommen, wie bringt man google dazu die robots.txt neu zu laden, was bedeutet robiots.txt disallow: referer, http_referer php googlebot robots.txt, robots identifizieren php, robots.txt umgehen, php regex server log file parser googlebot seo, txt parser wiki, robots txt spider liste 2011, böser user agent im webserver log

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum