Seite 1 von 2
Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 08:50
von Marcellus
Guten Morgen,
ich bin Python Anwender und mir hat vor längerer Zeit ein Bekannter ein kleines Skript geschrieben mit dem ich bei google crawlen kann. leider funktioniert es aus irgendeinem Grund nicht mehr und ich weiss nicht mehr weiter- Kann mir jemand mir eventuell weiterhelfen bzw. weiss wer was ich machen muss damit es wieder läuft?
Kurz zur Beschreibung:
ich gehe auf cmd und tippe hier die exe file meines crwalers ein + die nötigen Angaben damit das Script google seite durchsucht und mir die Daten in einer xls datai ausspuckt. Hier ein Beispeil:
Usage: crawler.exe google_qury [-f file] [-l limit] [-a max_alexa_rank]
Example: crawler.exe sonnenbrille -f general_list.xls -l 500 -a 500000
Normalerweise müsste mir das Script jetzt mindestens 500 URL mit den oben stehenden Parametern Sonnenbrille und das google rank bis 500000 ausspucken, was er früher auch gemacht hat. nun aber kommt folgende Fehlermeldung:
http://www.bilder-upload.eu/show.php?fi ... 549331.jpg
Ich bin für jeden Tipp und jede Hilfe dankbar. Euch einen guten Rutsch ins neue Jahr!
Lieben Gruß
Marcel
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 09:00
von mutetella
@Marcellus
So ganz ohne Quelltext ist es kaum möglich, der Ursache auf den Grund zu gehen. Ein `HTTP 404` Error weist erstmal darauf hin, dass eine Seite, die angefordert wurde, nicht existiert.
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 09:02
von Marcellus
hallo mutetella,
danke für deine Nachricht. Meinst Du meinen Link oder was genau?
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 09:03
von Marcellus
Ich glaube jetzt müsste was zu sehen sein

Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 09:10
von mutetella
@Marcellus
Nein, ich meinte die Fehlermeldung. Die besagt eben erstmal, dass ein `HTTP 404` Error verursacht wurde. Warum dieser Fehler auftaucht, kann man eben so ganz ohne Quelltext nicht sagen. Da wirst Du Dich wohl mit Deinem Bekannten kurzschließen müssen.
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 09:36
von Marcellus
Leider gibt es den Bekannten nicht mehr

wie komme ich denn an den quelltext ran?dann koennte ich den doch auslesen und hier rein kopieren oder? Viele Grüße Marcel
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 10:24
von BlackJack
@Marcellus: Als erstes könntest Du mal versuchen ob das Programm funktioniert wenn Du die Limit-Option richtig angibst, also ``-l50`` statt ``l-50``.
Ansonsten ist die Frage ob der Quelltext irgendwie aus der EXE zu holen ist. Kann gut sein dass der Originalquelltext da nicht dabei ist.
An so etwas sollte man beizeiten denken, insbesondere bei Software die Webseiten „scraped“, weil das ja nicht wirklich ungewöhnlich ist das sich bei Webseiten mal etwas ändert und die Software dann nachziehen muss um weiter zu funktionieren.
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 12:01
von Marcellus
Hallo BlackJack,
tatsächlich hab ich mich hier vertippt, aber auch mit -l 50 geht es nicht.
Wie kann ich denn herausfinden ob der Quellcode in der Exe dabei ist?
Ist es schwierig selbst solch ein Script zu erstellen?
hier noch mal den ganzen Ausgabe text:

Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 12:27
von Sirius3
@Marcellus: die exe-Datei ist wahrscheinlich eine zip-Datei. Wenn Du sie in .zip umbenennst, müßtest Du sie entpacken können.
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 12:38
von Marcellus
ja es ist eine zip datei und die beinhaltet nur eine exe. genau!
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 12:45
von BlackJack
@Marcellus: Die EXE-Datei selbst ist wahrscheinlich ebenfalls nur ein kleiner EXE-„stub“ an dem ein Archiv hängt wo dann die Programme und Daten drin sind die benötigt werden um das Programm auszuführen. Benenne mal die EXE um oder versuch die direkt mit so etwas wie 7zip zu entpacken.
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 13:18
von Marcellus
@BlackJack: ich erhalte die Meldung: crawler.exe kann nicht als Zip Archiv entpackt werden
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 13:40
von pixewakb
Wenn Du es neu schreiben müsstet: das Modul requests für den Abruf der Seiten, das Modul beautifulsoup zum Parsen der Website. Fürs Speichern nach xls gibt es eigene Module. Ich verwende ein Modul, um mir ods-Dateien schreiben zu lassen, wenn ich das denn mal brauche. BTW: CSV ist m. E. auch interessant, weil ich das Dateiformat leichter in Python weiterverarbeiten kann.
http://docs.python-requests.org/en/latest/
http://www.crummy.com/software/BeautifulSoup/
Kompliziert ist es m. E. nicht, sich einen eigenen Crawler zusammenzubauen.
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 14:22
von Marcellus
@pixewab: vielen Dank dafür. Heißt wohl mir bleibt nichts anderes übrig als selber was zu basteln? Dann hab ich ja jetzt ein neues Ziel für 2016
Vielen Dank und guten Rutsch
marcel
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 14:45
von nezzcarth
@Marcellus: binäre Dateien sind auch unter Windows nicht der Standard für Python-Skripte. Daher wäre vielleicht interessant herauszufinden, wie genau der Bekannte die PE-Datei erstellt hat um ggf. Rückschlüsse zu ziehen, ob man irgendwie an den Sourcecode kommen kann. Früher hat man unter Windows z.B. PEiD verwendet; weiß nicht, ob es da inzwischen was anderes/besser gibt.
Re: Fehler im Script?
Verfasst: Donnerstag 31. Dezember 2015, 15:21
von pixewakb
Ich sage es mal so: Wahrscheinlich würde ich es neu programmieren, weil ich den Aufwand für gering halte.
Schau mal hier zu einem alternativen Zugang:
https://de.wikipedia.org/wiki/Decompiler
und:
Google Suche nach "decompiler exe python"
U. a. findet sich diese Diskussion von 2011 (!):
http://stackoverflow.com/questions/6287 ... -by-py2exe
Du musst wissen, ob sich der Aufwand lohnt. Ich habe mit so etwas keinerlei Erfahrung. Ich kann dir nicht sagen, ob es klappt.
Re: Fehler im Script?
Verfasst: Freitag 1. Januar 2016, 12:08
von Marcellus
vielen Dank. ich denke das eine neuprogrammierung wohl wirklich mehr sinn macht.
ich werde mir die module requests und beautifulsoup anschauen. gibt es für das was ich vorhabe irgendein "Gerüst" oder muss ich hier von null beginnen? danke für die Hilfe!
Re: Fehler im Script?
Verfasst: Freitag 1. Januar 2016, 13:42
von pixewakb
Schau einmal, ob Du damit etwas anfangen kannst.
Code: Alles auswählen
from bs4 import BeautifulSoup
import requests
url = "http://www.heise.de/"
webpage = requests.get(url).text
soup = BeautifulSoup(webpage, "html.parser")
results = soup.find_all("h2")
for result in results:
print(result.text.strip(" "))
Du wirst Dich mit HTML auf der Seite befassen müssen und dann mit den Suchmöglichkeiten. Ich habe hier nach den h2-Tags (Überschriften) gesucht. Wahrscheinlich werden bei Dir die div-Boxen, in denen Ergebnisse stehen interessanter sein. Dann musst Du die wieder weiter zerlegen, um an den Text in der Box zu kommen, der normalerweise unterteilt ist...
Re: Fehler im Script?
Verfasst: Freitag 1. Januar 2016, 14:01
von Marcellus
ok, requests und beautifulsoup habe ich erfolgreich installiert und werde nun mit Deinem "Gerüst" weitermachen.
Die xls oder cvs datei die mir das script früher ausgespuckt hat, gab mir folgende Daten aus:
Nr, Content, URL, CMS System der Seite (z.b. Magento), Ranking (googlerank)
Re: Fehler im Script?
Verfasst: Freitag 1. Januar 2016, 14:21
von pixewakb
Nr, Content, URL, CMS System der Seite (z.b. Magento), Ranking (googlerank)
Du bildest Listen von Listen und packst da die Daten rein.
Um das Prinzip zu verdeutlichen:
Code: Alles auswählen
import pprint
ergebnisse = []
results = ["http://www.ard.de", "http://www.zdf.de",
"http://www.rtl.de", "http://www.disney.de"]
for i, result in enumerate(results):
teilergebnis = []
nr = i + 1
content = "Text aus dem Ergebnis"
url = result
cms = "Brauchst Du das wirklich?"
ranking = i
teilergebnis = [nr, content, url, cms, ranking]
ergebnisse.append(teilergebnis)
pprint.pprint(ergebnisse)
Das CMS bekommst Du m. E. nur, wenn Du die Seite dann gezielt darauf auswertest. Der Google-Rank könnte (?) der Platz in der Trefferliste sein, das ist dann im Prinzip der Platz in der Ergebnisliste. content dürfte die Beschreibung der Seite von Google sein usw.