Welche Programmiersprache ist für dies erforderlich?

...komplette Frage anzeigen

3 Antworten

Deine Frage ist außerordentlich gut gestellt! Du fragst, nach der am besten geeigneten Sprache für konkrete Aufgaben. Das machen leider die aller Wenigsten, aber genau DAS halte ich für wichtig! :)

Grundsätzlich kann man all die von dir gewünschten Dinge mit nahezu jeder Programmiersprache erledigen, aber natürlich sollte man das dafür am besten passende Werkzeug nehmen.

Ich denke, Python ist zufällig die perfekte Sprache für jeden einzelnen deiner Punkte:

  • Es sind bereits imap, pop und smtp Module von Haus aus dabei, einen Mailclient zu basteln ist damit ein Klacks.
  • HTML-Parser, RegEx und Netzwerksachen für die Bot-Entwicklung sind ebenfalls standardmäßig vorhanden. (sogar ein robots.txt-Parser)
  • Sowohl Amazon, als auch Facebook, unterstützen Python-APIs an.

Alternativ gingen noch Ruby oder Perl, aber bei Ersterer muss man evtl. Drittanbieter "Gems" nachinstallieren, und Letztere ist nicht so Anfängerfreundlich wie Python (wenn auch mindestens genauso mächtig).

Java, C++ oder C# halte ich in deinem Fall für weniger komfortabel. Ich stehe selbst extrem auf C++ und arbeite sehr sehr oft mit Java und C#, die ich beide auch sehr gut leiden kann, aber man muss einfach zugeben, dass für deine Anforderungen Python die beste Wahl ist.

Von PHP und VB würde ich die Finger lassen ... das endet nur in katastrophaler Frickelei. ><

Fazit: Wenn ich du wäre, würde ich mich für Python entscheiden!

Hier gibt es ein offizielles Tutorial (unter dem Link steht "start here"):

https://docs.python.org/3/index.html

Wenn du das durch hast, sind die von dir gestellten Aufgaben binnen 30 Minuten erledigt. :)

Viel Spaß! :)

PS: Ich schreibe mit Vorliebe meine Bots und Crawler in Python, und ich habe mir ebenfalls einen für GF geschrieben, der mir Fragen zu interessanten Themen vorsortiert und Uninteressantes rausfiltert. Darüber bin ich übrigens auf deine Frage gestoßen! :)

Außerdem habe ich mir einen Crawler für Amazon geschrieben, der Bücher von meinem Wunschzettel im Gebrauchtmarkt beobachtet, und mich benachrichtigt, sobald eines meiner Wunschbücher mit Zustand "Wie Neu" oder mindestens "Sehr gut" zu maximal 20% des Neupreises verfügbar ist. Darüber kaufe ich mir bei Amazon ein paar mal pro Woche neue Bücher ... teilweise für nur 3 Euro oder sogar manchmal nur einen Cent.

Außerdem mag ich die multiprocessing und multithreading Module von Python, vor allem, da man damit massiv parallele Crawler bauen kann. Bei meiner DSL-Leitung hier habe ich oft mehr als 10000 parallele Verbindungen offen und kann damit in knapp anderthalb Minuten Anfragen an ca. eine Million Websites senden. Ohne diese Parallelität würde man dafür fast 2 Wochen benötigen! (Krasser Unterschied, oder? Anderthalb Minuten vs. zwei Wochen!)

Dann habe ich mir noch ein Mail-Skript in Python geschrieben, welches Anhänge von Spam-Mails periodisch automatisch bei VirusTotal.com hoch lädt, eine Statistik über die Trefferquote anfertigt, und mir das Ergebnis als SVG-Diagram und CSV-Datei exportiert. (das ist auch der Hauptgrund, warum ich GAR NICHTS von Antivirensoftware halte ... aber das ist ein anderes Thema ...)

Wie anfangs gesagt - all das geht auch mit Java / C# / C++ / Wasauchimmer, aber nicht so schnell und so einfach! Die Abwägung des geeignetsten Werkzeuges ist sehr wichtig, ansonsten verschwendest du nur Zeit.

Außerdem mache ich noch sehr viel mehr Dinge mit Python, die auch so ähnlich wie die Dinge sind, die du vor hast. Aber das alles nur mal so nebenbei, damit du ungefähr merkst, dass ich weiß, wovon ich spreche.

PPS: Einfachste Crawler schreibe ich oft als einfaches Shell-Skript, aber das tue ich eigentlich nur, weil a) Shell cool ist, b) ich sed / awk / grep liebe und c) einfach weil ich es kann. Ist für Einsteiger wohl eher weniger geeignet, aber wie du siehst, geht selbst das. (Sogar Parallel mit mehreren Subshells aka Prozessen!) :)

opelD 05.06.2017, 19:16

Grüße Sie, darf man fragen welches Betriebssystem Sie nutzen?
Ich bin am überlegen ob ich mir einen MacBook Air zulegen sollte, was ist Ihre Meinung dazu?

0

Je nach Fall solltest du schauen, ob es eine API für den jeweiligen Dienst gibt und dich nach dieser ausrichten.

Ansonsten könntest du über eigene Requests versuchen, bestimmte Abläufe nachzuahmen. Dafür wäre die Wahl der Sprache egal. Günstig wäre es nur, wenn bereits entsprechende Bibliotheken vorhanden wären, die den Datenaustausch via HTTP ermöglichen / vereinfachen.

opelD 19.05.2017, 23:36

Welche Sprache würden Sie denn einem Neuling auf diesem Gebiet empfehlen:)?

0
regex9 19.05.2017, 23:45
@opelD

Einem Neuling würde ich vorerst empfehlen, überhaupt erst einmal Programmieren zu lernen. Bspw. mit PHP, Google Dart oder Java. Diese 3 Sprachen habe ich zielgerichtet gewählt, die Facebook API bspw. nutzt PHP.

0

Generell würde dies mit C/C++ gehen, aber gerade dieKommunikation mit Facebook ist auf deren API begrenzt.

Was möchtest Du wissen?