| Autor |
Beitrag |
galagher
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Mi 10.09.08 16:52
Titel: Re: Infos, Allgemeinwissen, Nachrichten (einzeilig!) downloa
Naja, ich meinte eher so in Listenform, eben zeilenweise!
galagher 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
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: 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
      
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)
|
Verfasst: 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 
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: 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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 13.09.08 17:16
Wie wärs mit den Indys und folgender URL:
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 
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Sa 13.09.08 20:22
Yogu 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
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Sa 13.09.08 21:31
Naja, um die Indys wirst du wohl kaum herumkommen...
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 14.09.08 12:48
|
|
galagher 
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: So 14.09.08 20:27
Yogu 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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 14.09.08 20:35
galagher 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...
galagher hat folgendes geschrieben: | | Und wenn ja, welche Komponente? |
TIdHTTP.
galagher 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.
galagher 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.
galagher 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 
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: So 14.09.08 20:55
Yogu 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.
Yogu 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... 
_________________ gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: So 14.09.08 20:58
galagher hat folgendes geschrieben: |
Yogu 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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 15.09.08 18:42
galagher hat folgendes geschrieben: | Yogu 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 
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Mo 15.09.08 18:47
Timosch 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!
Yogu 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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 15.09.08 19:07
galagher 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.
galagher 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.
galagher 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
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
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
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Mo 15.09.08 19:23
Yogu hat folgendes geschrieben: |
galagher 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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 15.09.08 19:24
nagel hat folgendes geschrieben: | Yogu hat folgendes geschrieben: |
galagher 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 
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Mo 15.09.08 20:52
Yogu 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:
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); 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! 
_________________ gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
|
|
|