Webseiten durchblättern und Daten kopieren
Ich habe dieses Skript für eine Freundin erstellt, die eine Immobilienwebsite durchläuft und eine E-Mail-Adresse für sie festhält (zur Werbung). Die Site bietet sie frei an, es ist jedoch unpraktisch, sie einzeln abzurufen. Das erste Skript speichert die Seitendaten in einer TXT-Datei mit dem Namen "webdump" und das zweite Skript extrahiert die E-Mail-Adressen aus der ersten TXT-Datei. Speichern Sie diese in einer separaten VBS-Datei. Wenn Sie das Skript testen möchten, möchten Sie möglicherweise Folgendes in eine niedrigere Zahl ändern (so viele Seiten werden verarbeitet):
Do while i < 1334
Der erste Fehler führt zu Fehlern und ich bin mir nicht ganz sicher, warum und der zweite zieht ein bisschen mehr heraus als nur die E-Mail-Adressen und noch einmal, nicht ganz sicher, warum. Ich bin kein hochqualifizierter VBS-Typ, aber diese Probleme haben nichts mit meiner Frage zu tun ... Frage unten ...
set ie = createobject("internetexplorer.application")
Set objShell = CreateObject("WScript.Shell")
Dim i
i = 0
Do while i < 1334
i = i + 1
ie.navigate "http://www.reoagents.net/search-3.php?category=1&firmname=&business=&address=&zip=&phone=&fax=&mobile=&im=&manager=&mail=&www=&reserved_1=&reserved_2=&reserved_3=&filterbyday=ANY&loc_one=&loc_two=&loc_three=&loc_four=&location_text=&page="&i
do until ie.readystate = 4 : wscript.sleep 10: loop
pageText = ie.document.body.innertext
set fso = createobject("scripting.filesystemobject")
set ts = fso.opentextfile("c:\webdump.txt",8,true)
ts.write pageText
ts.close
loop
Wscript.Echo "All site data copied!"
Und das zweite Stück:
Const ForReading = 1
Const ForWriting = 8
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "@"
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Input file
Set objFileIn = objFSO.OpenTextFile("C:\webdump.txt", ForReading)
strOutputFile = "C:\cleanaddress.txt"
Do Until objFileIn.AtEndOfStream
strSearchString = objFileIn.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
If colMatches.Count > 0 Then
For Each strMatch in colMatches
' Output File
Set objFileOut = objFSO.OpenTextFile(strOutputFile, ForWriting, True)
IF InStr(strSearchString," ") = 0 THEN
objFileOut.writeline strSearchString
ELSE
objFileOut.writeline Left(strSearchString,InStr(strSearchString," ")-1)
END IF
objFileOut.Close
Set objFileOut = Nothing
Next
End If
Loop
objFileIn.Close
Wscript.Echo "Done!"
Ich kann die Seiten auf dieser Site aufgrund der Art und Weise, wie die Adresse lautet, problemlos durchlaufen. Die letzte Adressenzahl ist sequentiell. Jetzt möchte ich es jedoch mit dieser Adresse versuchen:
Das scheint Java-basiert zu sein. Wenn ich durch die einzelnen Seiten klicke, ändert sich die Adresse nicht. Ist es in diesem Fall möglich, etwas Ähnliches wie auf der anderen Website zu tun?