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
Fehler im Script?
@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.
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.
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

@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.
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.
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

@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.
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.
@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.
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.
http://docs.python-requests.org/en/latest/
http://www.crummy.com/software/BeautifulSoup/
Kompliziert ist es m. E. nicht, sich einen eigenen Crawler zusammenzubauen.
@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.
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.
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.
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!
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!
Schau einmal, ob Du damit etwas anfangen kannst.
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...
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(" "))
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)
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)
Du bildest Listen von Listen und packst da die Daten rein.Nr, Content, URL, CMS System der Seite (z.b. Magento), Ranking (googlerank)
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)