Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Di 09.09.08 20:34 
Hallo!

Ich suche nach einer Möglichkeit, grosse Mengen an Infos, vor allem im Sinne von Allgemeinwissen downzuloaden, wobei ich dies als jeweils einzeiligen Text benötige.
Als Beispiel könnte man die Artikel in der Wikipedia nehmen: Dort fasst sehr oft der erste Satz das Wesentliche des Artikels zusammen, er beschreibt also, was es ist. So etwas wie den ersten Satz brauche ich, nur möchte ich natürlich nicht manuell in der Wikipedia Text markieren, kopieren und dann einfügen!

Gibt's irgendwo eine Download-Möglichkeit für so etwas?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 09.09.08 21:49 

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 10.09.08 16:52 
Titel: Re: Infos, Allgemeinwissen, Nachrichten (einzeilig!) downloa
Naja, ich meinte eher so in Listenform, eben zeilenweise!
user profile icongalagher hat folgendes geschrieben:
nur möchte ich natürlich nicht manuell in der Wikipedia Text markieren, kopieren und dann einfügen!

Eine Liste eben!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Fr 12.09.08 14:39 
Google mal "define:stichwort" (ohne die Anführungszeichen). Müsste sowas sein, wie du suchst, oder?

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Fr 12.09.08 17:10 
Vielleicht kommst du auch über Google Maps / Google Earth zu deinem Glück. Denn die binden mWn ja Wikipedia Artikel zusammengefasst ein. Eventuell findest du ja heraus, wie diese API angesteuert werden musst und kannst sie dann mitnutzen!?

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Sa 13.09.08 16:58 
Danke für die Tipps, aber das Markieren, Kopieren und einfügen bleibt mir wohl nicht erspart, und auch den gesuchten Begriff bei define: muss ich manuell eingeben. Hier wäre eine Automation nützlich, aber ich werde es nicht hinbekommen, dass ein Delphi-Programm folgendes tut:

1. Bei Google (Fenster eines anderen Programmes!) das Stichwort eingibt
2. Die Google-Suche startet (Google also fernsteuert)
3. Den ersten Satz markiert und kopiert
4. Ihn in eine Liste einträgt (ok, diesen Teil würde ich schaffen!)

An Stichwörtern mangelt es nicht, ich habe eine Liste mit tausenden davon!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 13.09.08 17:16 
Wie wärs mit den Indys und folgender URL:

ausblenden Quelltext
1:
GET http://http://www.google.de/search?q=define%3AStichwort					


Dort suchst du dann mithilfe von Pos und Copy die Abschnitte zwischen <li> und <br> raus. Wenn du ganz sicher sein willst, dass es richtig funktioniert, musst du den Text noch "unescapen".

Was du mit den einzelnen Vorschlägen machst, bleibt dir überlassen. Du sie entweder alle auflisten und den Anwender auswählen lassen, oder sie automatisch auswählen lassen. Zum Beispiel die längste Definition ohne ein "..." am Schluss (die sind nämlich unvollständig).
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Sa 13.09.08 20:22 
user profile iconYogu hat folgendes geschrieben:
Wie wärs mit den Indys und folgender URL:

Danke, aber das ist mir doch etwas zu viel... :?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Sa 13.09.08 21:31 
Naja, um die Indys wirst du wohl kaum herumkommen...
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 14.09.08 12:48 
user profile icongalagher hat folgendes geschrieben:
user profile iconYogu hat folgendes geschrieben:
Wie wärs mit den Indys und folgender URL:

Danke, aber das ist mir doch etwas zu viel... :?

Das ist nicht viel. Installier einfach mal die Indys, und dann sehen wir weiter. Ich bin sicher, dass du das schaffst.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 14.09.08 20:27 
user profile iconYogu hat folgendes geschrieben:
Das ist nicht viel. Installier einfach mal die Indys, und dann sehen wir weiter. Ich bin sicher, dass du das schaffst.

Kann ich nicht die Delphi-eigenen Indy-Komponenten verwenden? Und wenn ja, welche Komponente? Wie ist das mit der Sicherheit? Bevor ich da etwas starte, das sozusagen an Firefox vorbei (oder nicht?) eine Internetverbindung aufbaut, möchte ich das zuerst wissen!

Ein paar kleine Tipps vielleicht!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 14.09.08 20:35 
user profile icongalagher hat folgendes geschrieben:
Kann ich nicht die Delphi-eigenen Indy-Komponenten verwenden?

Ich kenne keine Delphi-eigenen Indy-Kompnenten. Nicht in D3, und nicht in D7. Aber vielleicht ist das bei dir anders, umso besser...

user profile icongalagher hat folgendes geschrieben:
Und wenn ja, welche Komponente?

TIdHTTP.

user profile icongalagher hat folgendes geschrieben:
Wie ist das mit der Sicherheit?

Nun ja - was soll denn bei einer einfachen Abfragen von wegen Allgemeinwissen schon ein Sicherheitsproblem sein? Macht es dir was aus, wenn da irgendwo jemand sitzt, und dir beim Nachrichtenlesen zuschaut? Ich denke, das ist das kleinste Problem. Und Viren kannst du dadurch sicher nicht bekommen.

user profile icongalagher hat folgendes geschrieben:
Bevor ich da etwas starte, das sozusagen an Firefox vorbei (oder nicht?) eine Internetverbindung aufbaut, möchte ich das zuerst wissen!

Firefox hat damit gar nichts zu tun. Firefox baut nur selber, also parallel, Internetverbindungen auf. Genauso wie dein Programm das tun wird.

user profile icongalagher hat folgendes geschrieben:
Ein paar kleine Tipps vielleicht!

Du kannst mit IdHTTP.Get eine Internetseite anfordern. Die URL habe ich ja schon gepostet - einfach Stichwort durch das jeweilige Stichwort ersetzen. Als Rückgabewert der Get-Funktion bekommst du einen String. Den kannst du jetzt mit Pos und Copy auseinandernehmen, wie ich schon im vorletzen Post beschrieben habe.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 14.09.08 20:55 
user profile iconYogu hat folgendes geschrieben:
Ich kenne keine Delphi-eigenen Indy-Kompnenten. Nicht in D3, und nicht in D7. Aber vielleicht ist das bei dir anders, umso besser...

IdHTTP gibt es bei meinem Delphi. Das wird's wohl sein.

user profile iconYogu hat folgendes geschrieben:
Macht es dir was aus, wenn da irgendwo jemand sitzt, und dir beim Nachrichtenlesen zuschaut? Ich denke, das ist das kleinste Problem. Und Viren kannst du dadurch sicher nicht bekommen.

Ja, macht mir was aus. Und ob man dabei Viren oder sonstwas bekommen kann, wer weiss!
Ich meinte ja nur mit "sozusagen an Firefox vorbei", dass Firefox ja selbst schon Sicherheitseinstellungen hat, die die Komponente ja nun eben nicht hat -> ergo ein Sicherheitsrisiko!

Danke erstmal, ich überleg's mir erst einmal, denn es wäre ja schon schön, wenn das klappt! Mal sehen... :gruebel:

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: So 14.09.08 20:58 
user profile icongalagher hat folgendes geschrieben:

user profile iconYogu hat folgendes geschrieben:
Macht es dir was aus, wenn da irgendwo jemand sitzt, und dir beim Nachrichtenlesen zuschaut? Ich denke, das ist das kleinste Problem. Und Viren kannst du dadurch sicher nicht bekommen.

Ja, macht mir was aus. Und ob man dabei Viren oder sonstwas bekommen kann, wer weiss!

Bitte was? An Firefox vorbei? Jedes Programm baut für sich eine Verbindung auf, und was soll daran gefährlich sein? Die Sicherheitseinstellungen von Firefox und Co. beziehen sich auf den Inhalt des heruntergeladenen. Du bekommst mit idHTTP zunächst mal nur Text. Ob du die Datei mit der Komponente oder mit dem FF herunterlädst, ist völlig egal, mögliche Gefahren beziehen sich auf den Inhalt. Das Herunterladen ist doch völlig harmlos.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 15.09.08 18:42 
user profile icongalagher hat folgendes geschrieben:
user profile iconYogu hat folgendes geschrieben:
Macht es dir was aus, wenn da irgendwo jemand sitzt, und dir beim Nachrichtenlesen zuschaut?

Ja, macht mir was aus.

Ich meinte damit nicht, dass jeder beliebige Internet-Benutzer die Verbindung problemlos anschauen kann. Ok, es besteht die Gefahr, dass das passiert, aber die ist IMHO nicht größer, als wenn du hier im DF eine private Nachricht schreibst. Richtig sicher wird's erst mit HTTPS. Proxys etc. kannst du über die Komponente auch einstellen, und die Firewall bleibt aktiv.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 15.09.08 18:47 
user profile iconTimosch hat folgendes geschrieben:
Du bekommst mit idHTTP zunächst mal nur Text. Ob du die Datei mit der Komponente oder mit dem FF herunterlädst, ist völlig egal, mögliche Gefahren beziehen sich auf den Inhalt. Das Herunterladen ist doch völlig harmlos.

Weiss ich mittlerweile, ich habe bereits eine IdHTTP-Kompo auf meinem Formular und es klappt soweit auch alles!

user profile iconYogu hat folgendes geschrieben:
Dort suchst du dann mithilfe von Pos und Copy die Abschnitte zwischen <li> und <br> raus. Wenn du ganz sicher sein willst, dass es richtig funktioniert, musst du den Text noch "unescapen".

Ok, ich kann also Text downloaden und als Datei speichern. Ist im html-Format. Wie hole ich mir nun konkret meinen Text da heraus, und was ist "unescapen"?

Sind vielleicht dumme Fragen, aber ich habe noch nie mit den Indy's gearbeitet, und die Delphi-Hilfe dazu ist leider nur in englisch!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 15.09.08 19:07 
user profile icongalagher hat folgendes geschrieben:
Ok, ich kann also Text downloaden und als Datei speichern.

Speichern brauchst du gar nicht, ein einfacher String reicht vollkommen. Den verwendest du jetzt auch zum weiteren auseinandernehmen.

user profile icongalagher hat folgendes geschrieben:
Wie hole ich mir nun konkret meinen Text da heraus, und was ist "unescapen"?

Kennst du Pos und Copy? Mit Pos kannst du nach einem bestimmten String suchen, und mit Copy schneidest du die gewünschten Teile raus.

user profile icongalagher hat folgendes geschrieben:
die Delphi-Hilfe dazu ist leider nur in englisch!

Hier mal die beiden Funktionen auf Deutsch:

Delphi-Hilfe: Pos (Funktion):
Die Funktion gibt den Indexwert des ersten Zeichens innerhalb des angegebenen Teil-Strings zurück, der in einem String vorkommt.

Unit: System
Kategorie: String-Verarbeitung

ausblenden Delphi-Syntax:
1:
function Pos(Substr: string; S: string): Integer;					


Beschreibung:
In Delphi sucht Pos in dem String S nach dem Teil-String Substr. Die Parameter Substr und S sind String-Ausdrücke.

Wird der Teil-String gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert Null zurückgegeben.

Die Funktion PosEx entspricht Pos, hat aber eine umfangreichere Funktionalität und kann in C++ Code verwendet werden.


Delphi-Hilfe: Copy (Funktion):
Die Funktion gibt einen Teilstring eines Strings oder ein Segment eines dynamischen Arrays zurück.

Unit: System
Kategorie: String-Verarbeitung

ausblenden Delphi-Syntax:
1:
2:
function Copy(S; Index, Count: Integer): string;
function Copy(S; Index, Count: Integer): array;


Beschreibung:
S ist ein Ausdruck des Typs String oder dynamisches Array. Index und Count sind Integer-Ausdrücke. Copy gibt einen Teilstring oder ein Teilarray zurück, das Count Zeichen oder Elemente ab S[Index] enthält. Der Teilsstring oder das Teilarray ist eine eindeutige Kopie (d.h., Speicher wird nicht gemeinsam mit S genutzt, obwohl Zeiger- oder Objekt-Elemente des Arrays nicht kopiert werden).

Ist Index größer als die Länge von S, gibt Copy einen leeren String oder ein leeres Array zurück.

Gibt Count mehr Zeichen oder Array-Elemente an, als verfügbar sind, werden nur die Zeichen oder Elemente von S[Index] bis zum Ende von S zurückgegeben.

Hinweis:
Wenn S ein dynamisches Array ist, brauchen Sie die Parameter Index und Count nicht anzugeben. Copy kopiert dann das gesamte Array.
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mo 15.09.08 19:23 
user profile iconYogu hat folgendes geschrieben:

user profile icongalagher hat folgendes geschrieben:
die Delphi-Hilfe dazu ist leider nur in englisch!

Hier mal die beiden Funktionen auf Deutsch:

Glaub er meinte die Hilfe zu IdHTTP.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mo 15.09.08 19:24 
user profile iconnagel hat folgendes geschrieben:
user profile iconYogu hat folgendes geschrieben:

user profile icongalagher hat folgendes geschrieben:
die Delphi-Hilfe dazu ist leider nur in englisch!

Hier mal die beiden Funktionen auf Deutsch:

Glaub er meinte die Hilfe zu IdHTTP.

Dann düfte das mit Pos und Copy ja kein Problem sein.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 15.09.08 20:52 
user profile iconYogu hat folgendes geschrieben:
Dann düfte das mit Pos und Copy ja kein Problem sein.

Nein, Copy und Pos sind nicht das Problem. Ich meinte, dass die Indy-Hilfe englisch ist!
Ich habe gegoogelt und folgenden Code gefunden und für meinen Zweck angepasst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
  aStream: TFileStream;
begin
 aStream := TFileStream.Create(AppDataDir+'Test.txt', fmCreate);
  try
    IdHTTP1.Get('http://www.google.de/search?q=define%3ATurm', aStream);  //"Turm" ist das Stichwort
  except
   Label2.Caption := 'Fehler';
  end;
  aStream.Free;

Kann man das auch besser machen?

Naja, und ich möchte aus dem html-Text eben den gewünschten Satz herauskopieren. Werde mir morgen mal ansehen, wie ich das schaffe! Danke schon erstmal! :D

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!