Bot der Internetseiten aufruft, und mit Nummern weiterfährt

Braucht man doch keinen Bot für. Was ist daran so schwer?

Code:
#!/usr/bin/perl

use WWW::Mechanize;

my $base_url='http://www.WasWeissICH.com/member_id=';
my $user = 1;
my $mech = WWW::Mechanize->new();
my $end_url='&profil=blablaub=3';
my $url = '';
my $content = '';

for($user=1; $user<=999999; $user++) {
	$url = $base_url.$user.$end_url;
	$mech->get($url);
	$content = $mech->content();
	# du something with $content
}
 
Du würdest dir selbst einen proggen und verstehst ein simples Perl-Skript nicht bzw. hast keine Ahnung, was du damit machen sollst? In dem Fall ist das Thema für mich hier beendet. Dann such mal fleissig weiter nach einem Bot. :rolleyes:
 
Code:
#!/bin/sh
i=1
anf=1
end=100
logfile=callsites.log
while test $anf -le $end
do
  curl http://WasWeissIch.com?member=$i 1> $logfile 2>&1
  i=`expr $i + 1`
  anf=`expr $anf + 1`
done

Linux ;)

Du solltest allerdings dieses Prinzip mit jeder x-beliebigen Skriptsprache wiederholen können.
 
Original von Cyberm@ster
Perl Interpreter gibt es auch für Windows.

Und jetzt lesen wir meinen Post nochmal und denken noch einmal über das Gesagte nach.... *denk*... oha, das ist ja Bash-Programmierung! :D
Und Bash-Programmierung unter Windows wäre, naja, sinnlos. Dafür gibts die Windows-Power-Shell, mit dem man nebenbei auch das Ziel erreichen könnte.
 
OK, iStone kennt sich mit dem Programmieren eben noch nicht aus. Daß Leute, für die das zutrifft, gegenteiliges behaupten, hat was mit dem Geschlecht und Psychologie zu tun. Aber letztlich wollen wir doch helfen, oder?

Also @iStone: Wenn Du tatsächlich selbst "proggen" willst, Besorge Dir ein Hilfsmittel, das Webseiten automatisiert laden und weiterverarbeiten kann. Weil: Rein zum Ärgern Deines Internet-Providers oder Deiner Nachbarn wirst Du das ja nicht machen wollen, oder?

Perl wäre wohl eines der schon empfohlenen Hilfsmittel.
Viele andere Scriptsprachen verstehen das genauso, darunter PHP.
Wenn Du es komplizierter haben und einen Browser fernsteuern willst, könntest Du auch "Autohotkey" benutzen.
Wenn Du es noch ein wenig komplizierter haben möchtest und HTML und Javascript sprechen kannst, könntest Du Seiten per Javascript z.B. in einem zweiten Browserfenster oder per XMLHTTPRequest nachladen. Wobei ich nicht helfen könnte beim Abspeichern (habe sowas unter Javascript noch nie verwendet, weil Javascript eigentlich nicht dafür vorgesehen ist, auf Dateien zuzugreifen).
Wenn Du es ganz allgemein (aber auch komplex) haben willst, nimm eine komplette Entwicklungsumgebung für C++ oder Java und wühle Dich dort in die Netzwerkprogrammierung hinein!

In jedem Fall mußt Du ZUERST programmieren lernen.

Alternativ: Nimm einen der vielen kostenlosen Auto-Downloader! Wenn Du ein mit hoher Wahrscheinlichkeit virenfreies und anständig vorselektiertes Archiv benutzen willst, probiere es bei www.heise.de!
 
nja, ich kann weder perl noch bash-skripte, hab sowas ähnliches aber schonmal mit visual basic gebastelt. wenn du's selber coden möchtest, sollteste dir die RFC zu HTTP mal durchlesen: -link-
(zumindest die sektion "9.3 GET")

mfg.
 
Hallo
Vielen Dank für die Antworten
Nun, mit selber Proggen meinte ich eigentlich, dass ich halt nen VB dingens schreibe, dass halt die Zahl immer ersetzt, so a=a+1 und immer so weiter fährt...
Allerdings funzt das leider leider doch nicht so, wie ich gedacht habe, denn es reicht nicht die Zahl anzupassen, sie muss auch mit dem Benutzernamen übereinstimmen :/
Dann werd ich das Projekt wohl verlegen, auf nächstes Jahr, bis da habe ich dann nämlich nen ganzes Jahr C++ gelernt ;)

Trotzdem danke, und werde mich sicher weiter mal mit Pearl beschäftigen, sieht interessant aus!
 
Du kannst das auch fast schon mit deinem Browser machen.
Hier das Bookmarklet "make numbered list" installieren (Firefox): https://www.squarefree.com/bookmarklets/misc.html

Dann auf die Seite gehen, die du durchsuchen willst. Hier einfach das Bookmarklet aufrufen und eine Liste mit allen Links erstellen.
Jetzt kann du mit einem Plugin wie z.B. DownloadThemAll alle Seiten auf einmal besuchen und runterladen.

mfg, metax.

~ edit: Zu spät gesehen ....
 
ich hab hier auch mal ne selbstgecodete Variante.

Das Script kann folgendes:
  • bis zu 4 verschiedene laufende Nummern (Start-Nummer und End-Nummer angebbar) mit beliebigem Nullen-Offset (z.B. wenn immer insges. 5 Ziffern als ID angegeben sind und bei kleineren Zahlen mit Nullen aufgefüllt wird)
  • den einzelnen Nummern können Zeichenketten voran gestellt oder hintendran angehängt werden
  • verwendet wget zum Downloaden und hat die nötigen Parameter für folgendes:
    - ignoriert Beschränkungen der robots.txt
    - sendet Referer mit, da je nach Serverkonfiguration sich manche Dateien nur ziehen lassen, wenn der Server im Request-Header nen Referer-Eintrag hat
    - sendet Browser-Information mit, da je nach Serverkonfiguration sich manche Seiten nur anzeigen lassen, wenn der Server eine Browser-Identifikation hat

Einschränkung: wenn du z.B. ein Download-Script "leer-ziehen" willst, wo in der URL nur IDs sind (also download.php?prog_id=0001) und der eigentliche Dateiname im Response-Header übertragen wird, solltest du wget ab Version 1.11 nutzen, da ältere Versionen diese Daten aus dem Header noch nicht auslesen und eben die Datei als "download.php?prog_id=0001" abspeichern.

Code:
#!/bin/bash
#(c) by BeAvIsBeE

#PARAMETER:

ziel="/zielverzeichnis/"

baseurl="http://www.example.com/directory-you-want/"

c1_start=1
c1_end=20
c1_offset=1
c1_pre="site.php?id="
c1_post=""
c1_show=1

c2_start=1
c2_end=20
c2_offset=4
c2_pre="&secret_number="
c2_post="xyz"
c2_show=1

c3_start=0
c3_end=0
c3_offset=0
c3_pre=""
c3_post=""
c3_show=0

c4_start=0
c4_end=0
c4_offset=0
c4_pre=""
c4_post=""
c4_show=0



# AB HIER NIX MEHR ÄNDERN!

c1=c2=c3=c4=lz_erg=""
function leading_zero()
{
    zahl=$1
    help=$1
    digit_counter=0
    zero=1
    while(($help>=1))
    do
      zero=0
      let help=$help/10
      let digit_counter++
    done

    let leading_zeros=$2-$digit_counter-$zero
    lz=""							# leading-zero-String
    for((i=0;i<$leading_zeros;i++))do lz="0"$lz; done		# fuehrende Nullen erzeugen
    lz_erg=$lz$zahl

}

  for (( x1 = c1_start; x1 <= c1_end ; x1++ ))			# Zählschleife von erster bis letzter Zahl
  do
    leading_zero $x1 $c1_offset
    if [ $c1_show == 1 ]; then c1=$c1_pre$lz_erg$c1_post; fi
    for (( x2 = c2_start; x2 <= c2_end ; x2++ ))			# Zählschleife von erster bis letzter Zahl
    do
      leading_zero $x2 $c2_offset
      if [ $c2_show == 1 ]; then c2=$c2_pre$lz_erg$c2_post; fi
      for (( x3 = c3_start; x3 <= c3_end ; x3++ ))			# Zählschleife von erster bis letzter Zahl
      do
        leading_zero $x3 $c3_offset
        if [ $c3_show == 1 ]; then c3=$c3_pre$lz_erg$c3_post; fi
        for (( x4 = c4_start; x4 <= c4_end ; x4++ ))			# Zählschleife von erster bis letzter Zahl
        do
          leading_zero $x4 $c4_offset
          if [ $c4_show == 1 ]; then c4=$c4_pre$lz_erg$c4_post; fi

echo "downloading "$baseurl$c1$c2$c3$c4"..."
wget -nc -erobots=off --referer="$baseurl" --user-agent="Mozilla 5.0(Gecko;Linux)" -r -P $ziel "$baseurl$c1$c2$c3$c4"

        done
      done
    done
  done
 
Heihei
Das mit dem Bookmarklet funktioniert ja wunderbar :D
Das Problem ist nur, dass ich jetzt bei jeder Seite manuel noch auf nen Button drücken muss, damit was passiert.
Aber das geht doch bestimmt auch automatisch, oder? :D

Also, der link den ich öffne, sieht so aus:
http://www.page.com/Ordner.php?DATEI_id=479485
und wenn ich auf den Button drücke wird dann folgender ausgegeben:
http://www.page.com/ordner/befehl.php?member_id=NUMMER&profil=NAMEderDATEI=3
Die Variabeln hier sind also die Nummer, und der Name der Datei, wobei der Name immer von der Nummer abhängt.

Kann man da was machen?
 
Ähmmm..., ja, aber Du mußt da schon etwas genauer werden. Die Syntax Deiner Darstellung kann so wohl nicht stimmen. Kopiere mal eine "richtige" Beispielzeile hier rein!
 
dann würde ich das mit PHP oder Perl machen...

du gehst den ersten Link Nummer für Nummer durch und mittels Regulärer Ausdrücke parst du die HTML-Datei und lässt dir den Username damit zurückgeben. Mit dieser Information kannst du dann den 2. Link aufrufen, wo ja beide Informationen benötigt werden...
 
Zurück
Oben