thehacker
Anhänger der Apachen
Hallo,
nach glaube ich 2 Monaten habe ich2 Crawler geschrieben aber:
ich weiss nicht wie ich beide vereinen soll?
Der erste erstellt eine Linkliste diesen gibt es aber Frei im Netz zum Runterladen
Der Zweite ist selber gemacht und gibt die Meta Daten aus kann abe auch den Meta Tag Robots von folgen und nicht folgen unterscheiden
nun die Fragen
Wie bekomme ich beide zusammen?
Kann ich den auf einem Localhost laufen lassen und die DB Einfach nacher Ex/Importieren?
und was ist mit der Robots.txt?
und wie mache ich es das wenn er die 1. Seite durchsucht hatt auf einen Weiteren Link geht Sprich 5 Links und die Seite ist Fertig heisst die 5 Links in neuen Browser Tabs öffnen und die Fertigen Schliesen?
und ist das ganze zu umständlich? (Erklerung und Fragen )
Mfg
TheHacker
PS: Die Codes (Dürfen gerne weitergenutz werden:
Crawler 1:
Crawler 2:
nach glaube ich 2 Monaten habe ich2 Crawler geschrieben aber:
ich weiss nicht wie ich beide vereinen soll?
Der erste erstellt eine Linkliste diesen gibt es aber Frei im Netz zum Runterladen
Der Zweite ist selber gemacht und gibt die Meta Daten aus kann abe auch den Meta Tag Robots von folgen und nicht folgen unterscheiden
nun die Fragen
Wie bekomme ich beide zusammen?
Kann ich den auf einem Localhost laufen lassen und die DB Einfach nacher Ex/Importieren?
und was ist mit der Robots.txt?
und wie mache ich es das wenn er die 1. Seite durchsucht hatt auf einen Weiteren Link geht Sprich 5 Links und die Seite ist Fertig heisst die 5 Links in neuen Browser Tabs öffnen und die Fertigen Schliesen?
und ist das ganze zu umständlich? (Erklerung und Fragen )
Mfg
TheHacker
PS: Die Codes (Dürfen gerne weitergenutz werden:
Crawler 1:
PHP:
<form action="" method="post">
<input type="text" name="url" value="http://" />
</form>
<?
$url = $_POST['url'];
if(isset($_POST["url"])) {
$datei = fopen("data/sitemap.txt", "w");
fwrite($datei, "");
fclose($datei);
$datei = fopen("data/backup.txt", "w");
fwrite($datei, "");
fclose($datei);
}
if($url=="") {
$url = stripslashes(urldecode($_GET["url"]));
}
if($url != "") {
/* ==========================================================================
alles was dir URL betrifft
==========================================================================*/
# URL aufteilen / parsen
$urlArray = parse_url($url);
# Das http prüfen. Bei anderen Protokollen Error melden
if($urlArray["scheme"]=="http") {
$http = "http://";
} else {
weiter("error");
exit;
}
# Den host prüfen und www entfernen
$hostControl = strpos($urlArray["host"], "www.");
if($hostControl === false) {
$host = $urlArray["host"];
} else {
$host = str_replace("www.","",$urlArray["host"]);
}
# Root URL
$root = $http.$host;
# URL nur ohne www
$url = str_replace("www.","",$url);
/* ==========================================================================
alles was den INHALT betrifft
==========================================================================*/
# Den Inhalt der Seite laden
$data = @implode("", file($url));
if($data=="") {
$backup = file_get_contents("data/backup.txt");
$backupURLs = split("[\n]",$backup);
$datei = fopen("data/backup.txt", "w");
fwrite($datei, "");
fclose($datei);
for($j=0;$j<=count($backupURLs);$j++) {
if(str_replace("www.","",$backupURLs[$j])!=$url) {
$datei = fopen("data/backup.txt", "a");
fwrite($datei, stripslashes($backupURLs[$j]."\n"));
fclose($datei);
}
}
weiter("error");
exit;
}
# Alle Links aus dem Inhalt extrahieren
# nur die a-Tags filtern
$aTags = strip_tags($data, "<a>");
preg_match_all("/<a(?:[^>]*)href=\"([^\"]*)\"(?:[^>]*)>(?:[^<]*)<\/a>/is", $aTags, $matches);
$hrefs = array_unique($matches[1]);
$linksBreak;
for($i=0;$i<=count($matches[1]);$i++) {
if($hrefs[$i]) {
$js = strpos($hrefs[$i], "javascript:");
$raute = strpos($hrefs[$i], "#");
$mailto = strpos($hrefs[$i], "mailto:");
$jpeg = strpos($hrefs[$i], ".jpeg");
$gif = strpos($hrefs[$i], ".gif");
$jpg = strpos($hrefs[$i], ".jpg");
$ico = strpos($hrefs[$i], ".ico");
$png = strpos($hrefs[$i], ".png");
if($raute === false) {
if($js === false) {
if($mailto === false) {
if($jpeg === false) {
if($gif === false) {
if($jpg === false) {
if($ico === false) {
if($png === false) {
$rel = $hrefs[$i];
$com = absolute($url,$rel);
$linksBreak .= $com."\n";
}
}
}
}
}
}
}
}
}
}
$datei = fopen("data/sitemap.txt", "a");
fwrite($datei, $url."\n");
fclose($datei);
$datei = fopen("data/backup.txt", "a");
fwrite($datei, stripslashes($linksBreak));
fclose($datei);
$backupURLs = file_get_contents("data/backup.txt");
$backupURLs = split("[\n]",$backupURLs);
$backupURLs = array_unique($backupURLs);
$datei = fopen("data/backup.txt", "w");
fwrite($datei, "");
fclose($datei);
for($i=0;$i<=count($backupURLs);$i++) {
$strpos = strpos($backupURLs[$i],$root);
if($strpos===false) {
//
} else {
if($backupURLs[$i]!="") {
$sitemapURLs = file_get_contents("data/sitemap.txt");
$sitemapURLs = split("[\n]",$sitemapURLs);
$ok = "ok";
for($j=0;$j<=count($sitemapURLs);$j++) {
if($sitemapURLs[$j]==$backupURLs[$i]) {
$ok = "ne";
}
}
if($ok=="ok") {
$datei = fopen("data/backup.txt", "a");
fwrite($datei, stripslashes($backupURLs[$i]."\n"));
fclose($datei);
}
}
}
}
weiter("normal");
}
/* ==========================================================================
Nächste Seite scannen
==========================================================================*/
function weiter($a) {
if($num=="") {
$num = 0;
}
$backupURLs = file_get_contents("data/backup.txt");
$backupURLs = split("[\n]",$backupURLs);
if($backupURLs[0]!="") {
echo "<script type='text/javascript'>document.location = 'crawler.php?url=".urlencode($backupURLs[0])."';</script>";
} else {
echo "Sitemap fertig";
}
}
/* Funktion für die absoluten Pfade */
function absolute ($absolute, $relative) {
// Link ist schon absolut
if (preg_match(',^(https?://|ftp://|mailto:|news:),i', $relative))
return $relative;
// parse_url() nimmt die URL auseinander
$url = parse_url($absolute);
// dirname() erkennt auf / endende URLs nicht
if ($url['path']{strlen($url['path']) - 1} == '/')
$dir = substr($url['path'], 0, strlen($url['path']) - 1);
else
$dir = dirname($url['path']);
// absoluter Link auf dem gleichen Server
if ($relative{0} == '/') {
$relative = substr($relative, 1);
$dir = '';
}
// Link fängt mit ./ an
elseif (substr($relative, 0, 2) == './')
$relative = substr($relative, 2);
// Referenzen auf höher liegende Verzeichnisse auflösen
else while (substr($relative, 0, 3) == '../') {
$relative = substr($relative, 3);
$dir = substr($dir, 0, strrpos($dir, '/'));
}
// volle URL zurückgeben
return sprintf('%s://%s%s/%s', $url['scheme'], $url['host'], $dir, $relative);
}
?>
PHP:
<?php
$url = $_POST['url'];
if ($url == ""){
?>
<form action="" method="post">
<input type="text" name="url" value="http://" />
</form>
<?php
}
else {
$array = get_meta_tags("".$url."");
$follow = $array[robots];
if ($follow == "noindex, follow"){
echo "
Kein Folow
";
}
else {
echo $url;
echo "<br>";
echo "Keywords:<br>";
echo $array[keywords];
echo "<br>Sprache:<br>";
echo $array[language];
echo "<br>Beschreibung:<br>";
echo $array[description];
}}
?>
Zuletzt bearbeitet: