Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - unterschiedlichen Text hinter gleichem Wort auslesen


ChrisCross - Fr 18.10.13 18:19
Titel: unterschiedlichen Text hinter gleichem Wort auslesen
Hallo,

ich möchte auf folgender Internetseite den Autor beim ersten Element auslesen: http://www.buchpreis-suche.de/buchsuche.php?titel=drachengold&autor=&suche.x=0&suche.y=0. Ich habe schon versucht, den Quelltext zu kopieren und den mit pos zu durchsuchen. Autor habe ich immer gefunden. Nun komme ich nur nicht drauf, wie ich den Text da hinter einlesen kann.


jaenicke - Fr 18.10.13 21:20

Das geht im Grunde sehr einfach:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
uses
  System.RegularExpressions;

const
  cAuthorRegEx = '<td width=''80'' valign=''top''>Autor:</td>[ .\r\n]{1,}<td width=''210''><span class=''angaben''>(.*?)</span></td>';
  cRequestUrl = 'http://www.buchpreis-suche.de/buchsuche.php?titel=drachengold&autor=&suche.x=0&suche.y=0';
var
  HttpLoader: TIdHttp;
  RegEx: TRegEx;
  CurrentMatch: TMatch;
begin
  HttpLoader := TIdHttp.Create;
  try
    RegEx := TRegEx.Create(cAuthorRegEx);
    CurrentMatch := RegEx.Match(HttpLoader.Get(cRequestUrl));
    while CurrentMatch.Success do
    begin
      ShowMessage(CurrentMatch.Groups[1].Value);
      CurrentMatch := CurrentMatch.NextMatch;
    end;
  finally
    HttpLoader.Free;
  end;
end;
// EDIT:
Nun ein komplettes Beispiel inkl. Abruf der Seite, das alle Autoren auf der Seite ausgibt.
// EDIT2:
Wobei man die anderen Angaben natürlich auch noch mit als Gruppe einbeziehen kann.


ChrisCross - Sa 19.10.13 10:00

Hallo jaenicke,

hat wunderbar funktioniert. Danke