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.
Fehler im Script?
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)
soweit passt alles, nur erhalte ich leider die Fehlermeldung:
ImportError: No module named 'bs4'
ImportError: No module named 'bs4'
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(" "))
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 = []
Lead nr = i + 1
content = "Fahrrad"
url = result
cms = "Magento, JTL, Typo3"
ranking = i
teilergebnis = [Lead nr, content, url, cms, ranking]
ergebnisse.append(teilergebnis)
pprint.pprint(ergebnisse)
Nope, das passt noch nicht. Arbeite begleitend ein Tutorial zu Python zumindest ansatzweise durch.
Folgendes Problem: Du rufst wahrscheinlich Module auf, die Du zuvor nicht installiert hast. Das vermute ich ganz massiv, deshalb die Fehlermeldungen. Das sind Grundlagen und deshalb solltest Du dich an ein Tutorial machen.
Konkret zur Lösung:
http://docs.python-requests.org/en/late ... l/#install
http://www.crummy.com/software/BeautifulSoup/#Download
Ich setze immer voraus, dass Du Windows nutzt, weil ich das auch mache. In dem Fall startest Du die MS Eingabeaufforderung (Command Prompt) und gibst folgende 2 Sachen nacheinander ein und bestätigst jede Eingabe mit Enter.
Zeile 1:
pip install requests
Das installiert Dir requests, was Du brauchst und wahrscheinlich den nächsten Fehler geworfen hätte.
Zeile 2:
pip install BeautifulSoup
Das installiert Dir das bs4-Package.
Anschließend kannst Du das Skript noch mal versuchen und die Fehlermeldungen sollten nicht mehr auftauchen. Ich merke an, dass pip nach Bestätigen von Enter erst einmal arbeitet und Dir Sachen anzeigt. Das sollte aber fehlerfrei durchlaufen...
Folgendes Problem: Du rufst wahrscheinlich Module auf, die Du zuvor nicht installiert hast. Das vermute ich ganz massiv, deshalb die Fehlermeldungen. Das sind Grundlagen und deshalb solltest Du dich an ein Tutorial machen.
Konkret zur Lösung:
http://docs.python-requests.org/en/late ... l/#install
http://www.crummy.com/software/BeautifulSoup/#Download
Ich setze immer voraus, dass Du Windows nutzt, weil ich das auch mache. In dem Fall startest Du die MS Eingabeaufforderung (Command Prompt) und gibst folgende 2 Sachen nacheinander ein und bestätigst jede Eingabe mit Enter.
Zeile 1:
pip install requests
Das installiert Dir requests, was Du brauchst und wahrscheinlich den nächsten Fehler geworfen hätte.
Zeile 2:
pip install BeautifulSoup
Das installiert Dir das bs4-Package.
Anschließend kannst Du das Skript noch mal versuchen und die Fehlermeldungen sollten nicht mehr auftauchen. Ich merke an, dass pip nach Bestätigen von Enter erst einmal arbeitet und Dir Sachen anzeigt. Das sollte aber fehlerfrei durchlaufen...
Ok. Tutorials habe ich mir heute fast den ganzen Tag rein gezogen
requests zu installieren war kein Problem, bei beautifulSoup habe ich noch Schwierigkeiten.
Ich habe es nun mehrere male versucht, anscheinend mache ich da noch was falsch..
[img][IMG]http://www.bilder-upload.eu/thumb/e248d6-1451664686.png[/img][/img]
----------
installation hat jetzt funktioniert.
requests zu installieren war kein Problem, bei beautifulSoup habe ich noch Schwierigkeiten.
Ich habe es nun mehrere male versucht, anscheinend mache ich da noch was falsch..
[img][IMG]http://www.bilder-upload.eu/thumb/e248d6-1451664686.png[/img][/img]
----------
installation hat jetzt funktioniert.
Die Installation müsste jetzt richtig sein oder?
[img][IMG]http://www.bilder-upload.eu/thumb/21a896-1451665993.png[/img][/img]
[img][IMG]http://www.bilder-upload.eu/thumb/21a896-1451665993.png[/img][/img]
Unter `site-packages` eine `setup.py` auszuführen sieht schon mal ziemlich falsch aus. In die Verzeichnishierarchie von Python selbst sollte man nichts von Hand kopieren (wenn man nicht genau weiss was man da tut) oder gar Archive entpacken um dann von dort Skripte zum Installieren zu starten.
BeautifulSoup 4 braucht auch noch eine Bibliothek um letztendlich das HTML zu parsen. Da es dort verschiedene Alternativen gibt, denke ich die muss man manuell installieren weil da keine als feste Abhängigkeit definiert sein dürfte. `lxml.html` wäre beispielsweise so eine Bibliothek die `bs4` zum Parsen verwenden kann.
BeautifulSoup 4 braucht auch noch eine Bibliothek um letztendlich das HTML zu parsen. Da es dort verschiedene Alternativen gibt, denke ich die muss man manuell installieren weil da keine als feste Abhängigkeit definiert sein dürfte. `lxml.html` wäre beispielsweise so eine Bibliothek die `bs4` zum Parsen verwenden kann.
ich hab alles nochmal platt gemacht und python neu installiert und dann erst requests über pip installiert und dann beauftifulsoup
[img][IMG]http://www.bilder-upload.eu/thumb/1ca4f7-1451667092.png[/img][/img]
[img][IMG]http://www.bilder-upload.eu/thumb/1ca4f7-1451667092.png[/img][/img]
Google findet automatisierte Abfragen nicht so gut und lässt diese nicht so ohne weiteres über sich ergehen (s.a. https://support.google.com/webmasters/answer/66357; das dürfte trotz der Rubrik wohl für Google allgemein gelten). Abgesehen davon, dass man gegen die Nutzungsbedingungen verstößt, wird Aufgabe daher weniger trivial sein, als sie klingt.pixewakb hat geschrieben:Ich sage es mal so: Wahrscheinlich würde ich es neu programmieren, weil ich den Aufwand für gering halte.
Ich erinnere mich, dass ich darüber mal mit BlackJack hier "gesprochen" habe. Meine Datenquellen im Netz verbieten kaum etwas bzw. Unterseiten, die ich gar nicht suche, also die mich nicht interessieren.
Konkret: http://www.google.de/robots.txt
Was kann eigentlich bei einem unrechtmäßigen Parsen solcher Seiten passieren!? Würde mich interessieren. Teilweise als Fingerübung schreibe ich schon mal Software, um Webseiten abzufragen, ohne mich vorher in Sachen robots.txt kundig zu machen.
Konkret: http://www.google.de/robots.txt
Was kann eigentlich bei einem unrechtmäßigen Parsen solcher Seiten passieren!? Würde mich interessieren. Teilweise als Fingerübung schreibe ich schon mal Software, um Webseiten abzufragen, ohne mich vorher in Sachen robots.txt kundig zu machen.
@pixewakb: Einfachster Fall wäre wenn die Server versuchen solche Zugriffe zu erkennen und zu blocken. Wenn man auf der Seite ein Benutzerkonto besitzt und der Betreiber einen als Übeltäter identifizieren kann, könnte das Konto gesperrt werden. Es könnte auch zu künstlichen Hindernissen für alle Benutzer kommen um Missbrauch zu vermeiden. Oder der Dienst stellt den Betrieb ein wenn es überhand nimmt.
requests und beautiful soup sind installiert und laufen, auch das crawlen mit "h2" gab mir die entsprechende Ausgabe.
wie kann ich jetzt weitermachen? Kann mir jemand einen tip geben? Ich habe hier was sehr interessantes gefunden, bin mir aber noch viel zu unsicher es so wie er hier beschreibt anzugehen:
http://eliteinformatiker.de/2013/01/29/ ... mentieren/
Code: Alles auswählen
from bs4 import BeautifulSoup
import requests
url = "http://www.zdf.de/"
webpage = requests.get(url).text
soup = BeautifulSoup(webpage, "html.parser")
results = soup.find_all("h2")
for result in results:
print(result.text.strip(" "))
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 = "Hose, blau"
url = result
cms = "Magento, JTL, Typo3"
ranking = i
teilergebnis = [nr, content, url, cms, ranking]
ergebnisse.append(teilergebnis)
pprint.pprint(ergebnisse)
wie kann ich jetzt weitermachen? Kann mir jemand einen tip geben? Ich habe hier was sehr interessantes gefunden, bin mir aber noch viel zu unsicher es so wie er hier beschreibt anzugehen:
http://eliteinformatiker.de/2013/01/29/ ... mentieren/
Du musst Dich mit den Grundlagen befassen, sonst wird das nichts.
Du kopierst meine Schnipsel zusammen, ohne sie sinnvoll zu verbinden.
Nur mal so am Rande: Ich sehe gerade das Problem, dass man den Google-Such-Link nicht einfach zusammenbasteln kann, d. h. Google packt da einiges rein. Ansonsten könntest Du mal grob beschreiben, was Du eigentlich brauchst.
Folgendes funktioniert bei mir im Browser:
https://www.google.de/search?q=python
https://www.google.de/search?q=python+crawler
Du kopierst meine Schnipsel zusammen, ohne sie sinnvoll zu verbinden.
Nur mal so am Rande: Ich sehe gerade das Problem, dass man den Google-Such-Link nicht einfach zusammenbasteln kann, d. h. Google packt da einiges rein. Ansonsten könntest Du mal grob beschreiben, was Du eigentlich brauchst.
Folgendes funktioniert bei mir im Browser:
https://www.google.de/search?q=python
https://www.google.de/search?q=python+crawler
sorry wollte Dich doch nicht ärgern. Die "Schnippsel" habe ich einfach nur zusammengefügt um nochmal darauf aufmerksam zu machen..
ja Grundlagen bin ich mit Tutorial videos dran.
Was ich brauche ist ein crawler der mit in einer csv datei oder xls CMS System, URL und das googlerank ausspuckt. wie gesagt, hat mir vor einigen jahren mal ein bekannter, der aber verstorben ist sowas gebastelt. und der funktioniert nicht mehr. Da ich aber hier nun nicht mehr groß weiter komme und ich Dich anscheinend auch noch verärgert habe, werde ich mich erstmal mit den Grundlagen beschäftigen und irgendwann eines Tages, vielleicht mal solch einen Crawler basteln. ich habe wirklich gedacht, das es schneller umsetzbar ist. Trotzdem vielen Dank für die hilfe bisher!
ja Grundlagen bin ich mit Tutorial videos dran.
Was ich brauche ist ein crawler der mit in einer csv datei oder xls CMS System, URL und das googlerank ausspuckt. wie gesagt, hat mir vor einigen jahren mal ein bekannter, der aber verstorben ist sowas gebastelt. und der funktioniert nicht mehr. Da ich aber hier nun nicht mehr groß weiter komme und ich Dich anscheinend auch noch verärgert habe, werde ich mich erstmal mit den Grundlagen beschäftigen und irgendwann eines Tages, vielleicht mal solch einen Crawler basteln. ich habe wirklich gedacht, das es schneller umsetzbar ist. Trotzdem vielen Dank für die hilfe bisher!
Verärgert bin ich nicht, die Smileys sollte man nicht so ernst nehmen. Mein Eindruck ist allerdings, dass das so nichts werden kann. Mom. ich schaue mal.
Das kann man so eigentlich kaum weitergeben, aber es ist ein Anfang und für mehr reicht die Zeit nicht. Du könntest mal schauen, ob es bei dir lauffähig ist. Was genau brauchst Du? Ich frage mal ganz doof, wie weit willst Du die Google Suche auswerten!? Du müsstest dann die Unterseiten nämlich auch noch durchsuchen.
Die Variablennamen dürften nicht akzeptabel sein, eigentlich gibt es zum Schreiben von csv-Dateien auch ein eigenes Modul...
Die Variablennamen dürften nicht akzeptabel sein, eigentlich gibt es zum Schreiben von csv-Dateien auch ein eigenes Modul...
Code: Alles auswählen
import requests
from bs4 import BeautifulSoup
suchwort = "Python crawler"
url = "https://www.google.de/search?q={}"
# URL zusammenbauen
google_url = url.format(suchwort.replace(" ", "+"))
# Seite abfragen
webpage = requests.get(google_url).text
soup = BeautifulSoup(webpage, "html.parser")
with open("webpage.txt", "w") as f:
f.write(webpage)
"""
Text
Welcome to Python.org
https://www.python.org/ Diese Seite übersetzen
The official home of the Python Programming Language.
Download - Python 3.4.3 - Documentation - Getting Started
HTML in Auswahl (scheint nicht (!) zu stimmen!!!)
<div class="rc" data-hveid="31">
<h3 class="r"><a href="[...] data-href="https://www.python.org/">Welcome to Python.org</a></h3>
<div class="s"><div><div class="f kv _SWb" style="white-space:nowrap">
<cite class="_Rm">https://www.<b>python</b>.org/</cite>
[...]
<span class="st">The official home of the <em>Python</em> Programming Language.</span>
[...]
"""
results = soup.find_all("li", attrs={"class": "g"})
ergebnisse = []
for i, result in enumerate(results):
# print(result)
print("Rang:", i+1)
title = result.find("h3").find("a").text.replace("\n", "\t")
print(title)
"""
<span class="st">PyPI Version PyPI monthly downloads Wheel Status <b>Python</b> 3 Porting Status <br>
Coverage report. Install the latest version of Scrapy. Scrapy 1.0. pip install scrapy.</br></span>
"""
summary = result.find("span", attrs={"class": "st"}).text.replace("\n", "\t")
print(summary)
# input(">>>")
ergebnisse.append([i+1, title, summary])
with open("ergebnisse.csv", "a") as f:
for zeile in ergebnisse:
f.write(";".join(map(str, zeile))+"\n")