Speedy86
Avatar Speedy86
Themenersteller
(Ãœberlebens-) Künstler - nein, Programmierer und Designer
Fortgeschrittener (94 Beiträge)

Linkcheck einer Seite im Eigenbau

am 24.04.2010, 14:31 Uhr eröffnete Speedy86 folgenden Thread
PHP & MySQL    3221 mal gelesen    10 Antwort(en).

Hallo SR Community,
vielleicht wissen es ja bereits einige, das ich ein neues Projekt mit Blogs groß ziehe.
Für das Projekt fehlt ein Script, was eine andere Seite auf einen Backlink durchforstet. Dabei spielt es keine Rolle ob der Link follow oder nicht follow ist.
Es soll ein schneller Check werden ob ein Link gefunden wurde oder nicht. Das Problem besteht aber darin, alle Seiten zu überprüfen und erst mit der Analyse aufzuhören,sobald ein Link gefunden wurde.
Ich weiß nicht ob ich da vielleicht nur auf einen Startseitenlink setze (bei Blogs ist das recht easy).

Um euch noch etwas Hintergrundwissen zu geben... jeder bekommt von meiner neuen Domain einen follow-Backlink, sobald dieser jemand einen Link zur Seite setzt. Um es nicht in Linkhandel ausarten zu lassen, bestehe ich auch nicht auf einen Follow Link. Wichtiger ist mir da Mund-Propaganda und das man sich einfach die neue Domain "merkt".


Nun meine Frage:
Wer hat soetwas schonmal Programmiert und kann mir einige Tipps dazu geben und vll auch gleich hier im Thread eine öffentliche Lösung mit mir erarbeiten (open Source sozusagen)?
Das wesentliche Problem ist eher die Geschwindigkeit. Würde den Crobjob auf 1x Wöchentlich beschränken - aber es werden dennoch mehrere 1000 Links immer geprüft. Vielleicht auch jeden Tag nur 100 Links bis man irgendwann durch ist.

Mfg, Speedy


http://webmaster-glossar.de

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 24.04.2010, 15:08 Uhr schrieb joerg

Hallo Markus

Warum willst du etwas bauen was ich jederzeit manipulieren kann?

Also Prinzip die zu prüfende Seite aufrufen mit curl oder file_get_contents aufrufen.
Curl muss ich mir aber auch erst mal anschauen noch.

@$code = file_get_contents ("$url");
if (strpos($code,\'example.com\')!==false){echo \'\'.$url.\';}


Die Manipulation würde ich hierdurch erreichen!

if (strpos($_SERVER["REMOTE_ADDR"],\'IP Adresse deiner Seite\')!==false){Einen Link zu der Seite setzen}

Also vergiss die Prüfung einfach!

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 24.04.2010, 15:38 Uhr schrieb Raptor

@Jörg: Eine sehr motivierende Antwort von dir.
Dieses Problem lässt sich umgehen, indem man das Kontroll-Script auch mal auf dem Localhost laufen lässt, denn da ist die IP dynamisch.

@Marcus: Sowas lässt sich mit entsprechender Kenntnis einfach realisieren. Im Grunde bräuchte man dazu nur ein Bot-Script und modifiziert dieses.


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 24.04.2010, 15:56 Uhr schrieb joerg

Raptor schrieb:

@Jörg: Eine sehr motivierende Antwort von dir.
Dieses Problem lässt sich umgehen, indem man das Kontroll-Script auch mal auf dem Localhost laufen lässt, denn da ist die IP dynamisch.



Hallo Florian

Autsch das hiesse dann ja ich muss den Localhost auch noch abfangen!
Okay dann frage ich halt eben noch $_SERVER["SERVER_NAME"] nach Localhost ab!

War ausser der Demotivation etwas an meiner Antwort falsch?

Andererseits könnte ich auch nach googlebot abfragen und den Link dann gar nicht setzen!
Aber das wäre dann ja Cloaking !

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 24.04.2010, 16:11 Uhr schrieb Raptor

joerg schrieb:

Autsch das hiesse dann ja ich muss den Localhost auch noch abfangen!
Okay dann frage ich halt eben noch $_SERVER["SERVER_NAME"] nach Localhost ab!


Nein, ich meinte, man sollte das Script auch noch lokal laufen lassen, dann hat der Bot eine IP wie jeder andere Mensch auch, und nicht die eines Servers. Dann lässt sich kein Cloaking mehr betreiben, weil man ja jede IP "ausschliessen" müsste. Der Bot sieht dann dasselbe, was der Mensch am selben Computer auch sieht.


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 24.04.2010, 17:52 Uhr schrieb joerg

Hallo Florian

Wenn ich ein Skript lokal ausführe kommt in der Regel soweit mir bekannt ist also IP 127.0.0.1 und die Kennung Localhost ! Zumindest war das so zu erkennen in meinem Logfile als ich meine Skripts getestet habe!

Das kann man dann zwar auch noch einstellen aber das bauscht sich dann immer mehr auf!

An der ganzen Idee finde ich sowieso negativ das es als Linktausch gewertet werde könnte wenn Markus das realisiert! Es ist in meinen Augen Aufwand der nicht gerechtfertigt ist! Ausserdem habe ich auch mit HTML die Möglichkeit einfach ein noindex/nofollow für die Seite zu setzen!

Da würde ich wenn ich in der Art so ein Programm schreiben wollte eher eins aufbauen das meine externen und internen Links darauf überprüft ob ein 200er gesendet wird!

Da es das aber schon gibt spare ich mir das auch!

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 24.04.2010, 18:08 Uhr schrieb klaus_b

Hallo Jörg,

joerg schrieb:
<snip>
Da würde ich wenn ich in der Art so ein Programm schreiben wollte eher eins aufbauen das meine externen und internen Links darauf überprüft ob ein 200er gesendet wird!

Da es das aber schon gibt spare ich mir das auch!

Wie ich mitbekommen habe, beginnst du gerade dich in PHP einzuarbeiten. Wie in jeder Programmiersprache, ist PHP überhaupt eine , zählen Anfangs die kleinen Erfolge.
Was macht es da, dass es so eine Anwendung schon gibt? Was zählt, ist das erfoglreiche Lösen einer gestellten Aufgabe. Vielleicht erarbeitest du ja einen effizienteren Weg, als der in der bestehenden Anwendung?
Lass\' dich also nicht entmutigen und versuche einfach die gestellte Aufgabe zu bewältigen. Der Erfolg ist ein schönes Gefühl.
Im Lauf der Zeit, wird mit deinen Fähigkeiten, auch die Komplexität deiner Anwendungen wachsen. Wenn du jetzt schon so leichtfertig aufgibst, verbaust du dir selbst den Weg dahin.
Also löse die Aufgabe und erfreue dich am Ergebnis

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 24.04.2010, 18:46 Uhr schrieb joerg

Hallo Klaus

Ich habe noch genug vor mir momentan was ich umsetzen will!
Und das finde ich zugleich sinnvoller!

Man muss da jetzt Prioritäten setzen und die liegen klar bei den Punkten die ich mir vorgenommen habe! Und dann gibt es noch die Prioritäten die über dem Bereich Erstellung von Webseiten höher stehen.

Wenn ich so ein Skript wirklich brauche dann baue ich mir das halt eben!

Und am besten lernt man halt eben dabei wenn man eine Idee verfolgt und die umsetzt!

Da ich mir noch curl und die PHP Klassen eines Tages anschauen werde ist mir jetzt schon klar!
Dabei lege ich aber darauf Wert es wirklich zu verstehen und effetiv anzuwenden!

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Speedy86
Avatar Speedy86
(Ãœberlebens-) Künstler - nein, Programmierer und Designer
Fortgeschrittener (94 Beiträge)
am 25.04.2010, 14:50 Uhr schrieb Speedy86

Also ich sag mal durch meine 5 Webseiten inkl www.webchars.de und nun ein neues Baby was ich aufbaue und durch rund 5 Jahren mit PHP, denke ich hätte ich solch eine Lösung auch schnell gemacht meint ihr nicht auch?
Es geht mir auch nicht um Cloaking - denn wer einen Link setzt der nur angezeigt wird wenn meine Webseite auf einen Link überprüft (es ist egal ob follow oder nicht follow!!) dann wird der Blog einfach komplett ausgesperrt da Betrugsversuch. Ganz einfache und radikale Lösung für Betrüger.

Nur aus der Startseite wäre das einfachste, dazu hätte ich normalerweise nichtmal ein Forenthread dazu gestartet, aber es geht mir vielleicht um eine korrekte Lösung die schnell genug ist ohne viel Rechenpower schnell viele 100 Seiten zu prüfen. Und ob ich es auf Startseite eingrenzen sollte k.a. wobei die meisten Blogs rechts im Menü oder unten ihre Links eh auf jeder Seite (inkl. Startseite) präsentieren, wäre das wohl die einfachste Möglichkeit.

Mit gehts nicht um einen unbedingen follow Link - wer die Seite cool findet gibt ohnehin einen Follow-Link oder? Möchte schon auf ner seriösen Schiene bleiben. Wichtiger ist mir unkomplexer Lösungsversuch. Vielleicht ist ein XML Script das schnellste?! k.a. ich möchte nicht immer den ganzen Quellcode einer Seite auslesen, das sind pro Seite immer 3-10 kb die etwas zu viel sind.


http://webmaster-glossar.de

UFOMelkor
Avatar UFOMelkor
Student
Content Meister (350 Beiträge)
am 25.04.2010, 15:29 Uhr schrieb UFOMelkor

Verstehe ich das richtig, du möchtest auf mehreren 100 Seiten mit PHP prüfen, ob die Startseite (oder eine Unterseite) einen Link auf dein Projekt setzt?

Wenn ja, dann wirst du wohl nicht darum herum kommen, den Quelltext der Seite jeweils runterzuladen und zu überprüfen. Und bei mehreren 100 Seiten, dürfte das die Geschwindigkeit schon arg herunterziehen.

Die einzige Möglichkeit die mir spontan einfällt: Pack die Links in eine Datenbank; wenn irgendein Benutzer deine Seite besucht und in der Datenbank noch ungeprüfte Links sind, lasse mit einer Sekunde Verzögerung einen XmlHttpRequest mit JavaScript an ein PHP-Script schicken, dass die Seite überprüft und das Ergebnis in die Datenbank schreibt.


Naturkosmetik in Bochum

Steppenhahn Ultramarathon-Community

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 07.06.2010, 15:25 Uhr schrieb matthes

Die simpelste Variante wäre wohl, beim Eintrag auf Deiner Seite die URL der Seite, auf der der Backlink steht, zu verlangen. Ab in die Datenbank damit, periodisch prüfen, ob er noch da ist und falls nicht, Maßnahmen ergreifen.

Ansonsten wäre cURL wohl das Mittel der Wahl.
===
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_FORBID_REUSE => false
//dann wird die geöffnete Verbindung zum Server wieder genutzt
));
function find_backlink($url) {
curl_setopt($ch,CURLOPT_URL,$url);
$page=curl_exec($ch);
if (strstr($page,\'href="deinedomain"\')) {
return true;
}
else {
$matches=array();
preg_match_all(\'LINK_REGEX\',$page,$matches);
foreach ($matches[1] as $link) {
if (find_backlink($link)===true) return true;
}
}
return false;
}
find_backlink(\'blogurl\');
===

Kann aber ewig dauern...


Make Seitenreport great again!

  • 1


« zurück zu: PHP & MySQL

Das Seitenreport Forum hat aktuell 5273 Themen und 36107 Beiträge.
Insgesamt sind 48345 Mitglieder registriert.