Autor Beitrag
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Sa 16.01.10 22:41 
Hey,

ich habe mal wieder Kummer. Ich arbeite an einem kleinen Spaßprojekt (user profile iconBenBE: ;)) und möchte dafür die DF-Suche benutzen. Dabei benutze ich die Indies. Laut "Live HTTP Headers"-Extension wird beim Klick auf "Go" in der Suchleiste

ausblenden Quelltext
1:
search_fields=all&show_results=topics&synonym_search=1&search_keywords=bla&website=&search_terms=all					


gePOSTed. Als Ergebnis erhalte ich ja, beim POSTEN mit IdHTTP, wie allgemein Bekannt ist, einen String mit dem Quelltext. Die Suchlinks (die ich herausfiltern möchte) befinden sich hier:

 id="link_firstPost<TOPICID>" href="javascript:getFirstPost(<TOPICID>,'bla','');"><img align="top"

wobei <TOPICID> die ID des gefundenen Themas ist.

wenn ich jetzt aber mit
ausblenden 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:
    
    sl := TStringList.Create;
    sl.Add('search_keywords='+title);
    sl.Add('search_fields=all');
    sl.Add('show_results=topics');
    sl.Add('synonym_search=1');
    sl.Add('search_terms=all');
    sl.Add('sort_dir=DESC');
    sl.Add('search_author=');
    sl.Add('search_fields=all');
    sl.Add('sort_by=0');
    sl.Add('return_chars=200');
    sl.Add('search_time=0');

    //sl.Add('search_fields=all&show_results=topics&synonym_search=1&search_keywords=Test&website=&search_terms=all');

    source := id.Post('http://delphi-forum.de/search.php',sl);

    posFrstEntry := posEx('javascript:getFirstPost(', source) +24;
    posSndEntry := posEx('javascript:getFirstPost(', source, posFrstEntry)+24;
    posQuote := posEx(',', source, posSndEntry);

    topicId := copy(source,posSndEntry,posSndEntry-posQuote-1);
    result := 'http://delphi-forum.de/viewtopic.php?topic='+topicId;


nach dieser ID suche, finde ich NIX. Der Erhaltenen Source scheint also von einer anderen Stelle zu kommen.

Ich würde jedoch recht gerne eine Solche Suche durchführen können.

Hat jemand eine Idee, was ich falsch mache?

LG, FinnO
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 16.01.10 23:20 
Die Indys können kein JavaScript. Dementsprechend wirst du vermutlich auch keinen entsprechenden Code finden. ;-)
Warum schaust du dir das Ergebnis nicht einfach einmal an? :gruebel:

Du kannst einfach nach 'viewtopic.php?t=' oder so suchen.

Und dann ist dein Copy für die Topic-ID etwas seltsam:
user profile iconFinnO hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
    topicId := copy(source,posSndEntry,posSndEntry-posQuote-1);					
posQuote muss ja wohl immer größer als posSndEntry sein, so dass da eine negative Zahl herauskommt. Funktioniert das mit Copy (habs nicht ausprobiert)? Oder meintest du das vielleicht umgekehrt?