Any Tech-Freaks out there? akas spinnerte Ideen

Aka-Aka

Chaostheoretiker
Aka hat viele Ideen, wie er sich das PC-Leben leichter machen könnte. In seltenen Fällen werden daraus konkrete und einsatzfähige Werkzeuge, oft bleibt es bei der Idee.

Daher starte ich hier eine Reihe mit der Bitte um Brainstorming für die eine oder andere dieser Ideen. Ich weiß ja, dass es hier kluge Köpfe gibt...

1.
Wie kann ich
a) eine Liste von Suchbegriffen erstellen für Google [oder eine andere Suchmaschine] und anschließend
b) diese Suchbegriffsliste abarbeiten und
c) die jeweiligen Ergebnisse speichern?

(bzw. allgemeiner oder "eine Ebene darunter" gefragt: Wie schaffe ich es, eine Webseite automatisch aufzurufen und dann zu speichern? ich habe mal mit wget gebastelt, aber das scheitert in diesem Fall, weil die Suchergebnisse ja erst "gemacht" werden müssen... wget oder Downthemall nutze ich schon sehr ausgefeilt)

Also. Ich stelle meine Googlepreferenzen so ein, dass ich 100 Ergebnisse dargestellt bekomme (das reicht in den meisten Fällen). Dann möchte ich eben eine Liste von Suchbegriffen abgefragt kriegen und die Ergebnisse sollen gespeichert werden. Ich erstelle also zB eine Textdatei mit dem Inhalt

Max Mustermann Berlin
Max Mustermann Musterabzock GmbH
"Musterabzock GmbH" HRB
"Musterabzock GmbH" Geschäftsführer
Max Mustermann Xing

und dann sollen nacheinander die Abfragen gemacht und die Ergebnisse gespeichert werden.

So. Es dürfte ungefähr klar sein, in welche Richtung ich spinne :)
(in einer zweiten Stufe des Wahnsinns würde ich das dann noch verbinden wollen mit einer Eingabemaske. Traumvorstellung: Man hat eine Eingabemaske "Name, Ort, Firmenname" und dann wird automatisch eine Reihe von Suchanfragen gestartet und gespeichert - aber ok, das kommt später)

Ich kann eine batch schreiben, die eine bestimmte Eingabe als Suchbegriff in Google öffnet. Eine geklaute Datei sieht etwa so aus:
Code:
 echo off
    :GOO
        set /p suchbegriff="Suchbegriff: "
 
    If not defined suchbegriff ECHO Beendet, da kein Suchbegriff
    If not defined suchbegriff goto ENDE
 
 
    ::GOO START
 
    ECHO Anfrage "%suchbegriff%" gestartet!
    ECHO.
    start iexplore "http://www.google.de/#hl=de&source=hp&q=%suchbegriff%&btnG=Google-Suche&meta=&aq=f"
    set suchbegriff=
 
 
    ::NEU
 
    ECHO Weiterer Suchbegriff?
    CHOICE /C:JN /M:"(J)a - (N)ein"
 
    IF errorlevel 2 goto ENDE
    IF errorlevel 1 goto GOO
 
    :ENDE

Ich weiß auch, wie ich firefox da reinkriege.

Aber dann?

Ich bräuchte im Idealfall die Möglichkeit, eine Liste einzugeben mit den gewünschten Suchbegriffen und dann soll er die Suchbegriffe der Reihe nach abfragen. Aber dann bliebe noch das Problem des Speicherns.

Kann man das irgendwie in einer Batch machen oder geht das nur in einer "richtigen" Programmiersprache?

Welche Progframmiersprache ist für derartigen Schabernack empfehlenswert?

(ich habe später noch viele Fragen zum Thema wget automatisieren, Parameterübergabe an wget aus Listen usw)
 
wahrscheinlich an zwei Dingen:
a) ich habe es nicht hingekriegt, aus einer Textdatei Variablen rauszuziehen. Er hat dann immer Google gestartet mit Suchbegriff 1, Suchbegriff 1+2 und Suchbegriff 1+2+3
Das dürfte eine Kleinigkeit sein, Syntax könnte ich mit Google korrigieren

b) offenbar nutzt es nichts, wget anzuweisen, die Googleabfrage zu "ziehen"
wget http://www.google.de/#hl=de&output=search&sclient=psy-ab&q=mustermann "mustermann+gmbh"
wget "http://www.google.de/#hl=de&output=search&sclient=psy-ab&q=mustermann "mustermann+gmbh""
wget "http://www.google.de/#hl=de&output=search&sclient=psy-ab&q=mustermann"

bringt alles nur eine leere Googleseite
(also ich hatte versucht, aus einer Textdatei die Suchbegriffe rauszuziehen, die hätte ich dann hinter q= eingefügt, aber das bringt nix, solange ich nicht weiß, was ich bei wget schreiben muß, damit wget das Ergebis der Suche zurück liefert. )
 
[gelöscht]

Nach etwas Rumprobieren habe ich nun gelernt, mit einer Batchdatei Variablen zu erstellen, diese muß ich dann in einen Google-Standardsuchlink einfügen. Jetzt lasse ich es für heute und ein andermal baue ich eine Checkbox, wo ich vorauswählen kann, welche Suchanfragen-Kombinationen ich haben will.

Code:
set /p Firma="Firma:"
set /p Vorname="Vorname:"
set /p Nachname="Nachname:"
set /p Stadt="Stadt:"
set /p HRB="HRB:"
 
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://www.google.de/#hl=de&source=hp&q='%Firma%'&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://www.google.de/#hl=de&source=hp&q='%Firma%' Abzocke&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://www.google.de/#hl=de&source=hp&q='%Firma%' Betrug&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://www.google.de/#hl=de&source=hp&q='%Firma%' site:computerbetrug.de&btnG=Google-Suche&meta=&aq=f"
[usw...]

Aha! Eingabe OHNE Anführungszeichen und dann im Google-$ MIT 'Anführungszeichen' - dann funktioniert das!
 
Es gibt sicher diverse Möglichkeiten das zu lösen. Da Du offenbar Batch-Befehle von Windows bevorzugst: versuche es einmal mit einer For-Schleife in einer Batch-Datei.Syntax:

FOR %%var IN (Liste) DO befehl [Parameter]

Details erfährst Du mittels 'help for' in einer Windows Shell.

Kleines Beispiel:

Erstelle eine Datei testloop.bat mit folgendem Inhalt im Verzeichnis C:\test:

for %%a in (d1 d2 d3) do dir c:\test\%%a

Erstelle im gleichen Verzeichnis 3 Unterverzeichnisse d1, d2 und d3. Kopiere einige Dateien in diese Verzeichnisse, d. h. jeweils mind. eine Datei.
Rufe die Shell von Windows auf (cmd.exe) und wechsle in das Verzeichnis C:\test. Rufe dort dann testloop.bat auf. Es sollten die Inhalte der Unterverzeichnisse aus der Liste, also von d1, d2 und d3 ausgegeben werden.

Anstelle des dir-Befehls setzt Du dann entweder einen wget-Aufruf ein oder einen weiteren Batch-Job, dem Du dann den jeweiligen Wert aus der Liste übergibst. Eine Optimierung wäre es, die Liste in einer separaten Datei zu pflegen. In der Hilfe zum Befehl FOR kannst Du auch nachlesen, wie man aus einer Datei zeilenweise die Werte entnimmt, die man dem Befehl in der Schleife übergibt (inkl. Beispiel). Weitere Beispiele findet Google für Dich.

M. Boettcher
 
Danke. Ich habe viel gelernt... Nur weiß ich immer noch nicht, wie ich das Ergebnis der Googleabfragen speichern kann.

Stand heute

Code:
:START
 
set /p Firma="Firma:"
set /p Vorname="Vorname:"
set /p Nachname="Nachname:"
set /p Stadt="Stadt:"
set /p HRB="HRB:"
set /p Zusatz1="Zusatz1:"
set /p Zusatz2="Zusatz2:"
 
 
rem set Name='%Nachname%, %Vorname%'
rem echo %Name%
rem pause
rem nur zur kontrolle, ob der Name so passt
 
if %ZUSATZ1%x == x GOTO ZUS2
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q=%Name% '%Zusatz1%'&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q=%Name% '%Zusatz1%' %Zusatz2%&btnG=Google-Suche&meta=&aq=f"
 
:ZUS2
if %ZUSATZ2%x == x GOTO NOZUS
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q=%Name% '%Zusatz2%'&btnG=Google-Suche&meta=&aq=f"
 
:NOZUS
if %FIRMA%x == x GOTO NOFIRMA
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Firma%'&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Firma%' Abzocke&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Firma%' Betrug&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Firma%' site:computerbetrug.de&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Firma%' site:antispam-ev.de&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Firma%' %HRB%&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Firma%' Geschaeftsfuehrer&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q=%Name% '%Firma%'&btnG=Google-Suche&meta=&aq=f"
 
:NOFIRMA
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Nachname%' Abzocke&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q='%Nachname%' Betrug&btnG=Google-Suche&meta=&aq=f"
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe -new-tab" "http://www.google.de/#hl=de&source=hp&q=%Name%&btnG=Google-Suche&meta=&aq=f"
 
@ECHO OFF
ECHO Weitere Abfrage starten?
SET /P X=(J)a oder (N)ein?
IF /I "%X%"=="J" goto START
IF /I "%X%"=="N" goto ENDE
 
:ENDE

Das kann man noch verbessern, zB in dem man verschiedene Listen erstellt, diese in Dateien speichert und zeilenweise holt (ggf. über Bedingungen gesteuert)

Aber es ist schon ziemlich gut so. Mal sehen, ob es sich in der Praxis bewährt.
 
Vergiss einmal den Befehl "start" und benutze wget. Installiere wget z. B. nach C:\Programme\GnuWin32. Sodann erstelle einmal eine Datei gquery.bat mit folgendem Inhalt:

Code:
"C:\Programme\GnuWin32\bin\wget.exe" -U Firefox/10.0.2? http://www.google.com/search?q=%1+%2 -O %3.html

Ersetze bei Bedarf "C:\Programme\GnuWin32\bin\wget.exe" mit dem Pfad auf wget, der auf Deinem System richtig ist. Unter Windows 7 64 Bit wäre z. B. ein Pfad wie "C:\Program Files (x86)\GnuWin32\bin\wget.exe" zu verwenden.

Rufe dann die Shell über cmd.exe auf, wechsle in das Verzeichnis in dem gquery.bat liegt und gebe testweise folgendes ein:

gquery.bat Angela Merkel am

wget wird eine Suche nach Angela Merkel (Parameter 1 und Parameter 2) ausführen und die erste Seite des Ergebnisses als am.html (Parameter 3) im aktuellen Verzeichnis speichern. Lies sodann die Dokumentation von wget um ein Skript nach Deinen Wünschen zu erstellen.

NB: Im Grunde benötigst Du nur 2 Parameter: einen für die Suche und einen für die Datei mit dem Ergebnis. Mehrere Parameter einer Suche verbindest Du durch das + Zeichen.

gquery.bat Angela+Merkel+Paris Sarkozy am2

sucht nach Angela Merkel Paris Sarkozy und speichert die 1. Trefferseite in am2.html. Das führt zu folgender Änderung:

Code:
"C:\Programme\GnuWin32\bin\wget.exe" -U Firefox/10.0.2? http://www.google.com/search?q=%1 -O %2.html

Der Aufruf ist dann wie folgt:

gquery.bat Par1+Par2+Par3+Par4+... Zieldatei

Beispiel:

gquery.bat Angela+Merkel+Paris+Sarkozy amps

M. Boettcher
 
Zurück
Oben