FinnO - Sa 16.01.10 22:41
Titel: Fernsteuerung der DF-Suche
Hey,
ich habe mal wieder Kummer. Ich arbeite an einem kleinen Spaßprojekt (
BenBE: ;)) 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
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
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');
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 - 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:
FinnO hat folgendes geschrieben : |
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?