![]() |
UrlDownloadToFile - Heise.de
Warum kann ich mit UrlDownloadToFile nicht auf heise.de, bzw. genauer gesagt auf
![]() Er lädt die Datei einfach nicht runter. Ein Fehler tritt nicht auf. Bei anderen Datein (z.b. meiner eigenen Homepage funktioniert es Fehlerfrei). |
Re: UrlDownloadToFile - Heise.de
du kannst die rdf daten mit folgenden script auf deiner homepage anzeigen lassen.
vorteil dabei ist, die daten werden gecacht, sollte der host mal nicht verfügbar sein
Code:
<?php
// Heise Newsticker - Headlines auslesen // Basiert auf HeiseNewsticker Auslese Script von Jan "_bErT_" Lehnardt, // Modifiziert von Peter "[DiSAStA]" Petermann liest nur noch Headlines, // und bietet links zu den entsprechenden News // Danke auch an Tobias "Yapa" Ratschiller. // // Ich habe das Script noch weiter angepaßt. So werden die News zu in einer // bestimmten Zeitspanne (Default = 3 Stunden) abgerufen und dann // gecached. // // Fehler (</A></FONT>[/B] zuviel) wurde beseitigt. Die Quelltextausgabe wurde // verschönert (Pro Eintrag eine neue Zeile. // // Nachtrag: Auslesen jetzt über das RDF. Dadurch ist das Script nicht mehr // von der Heiseseite bzw. von derem Design abhängig. // // Mark Kronsbein // [url]http://www.php-homepage.de[/url] echo "<font size=1 color=000000 face=Verdana, Arial, helvetica, sans-serif>"; $link_prefix = ""; //$link_prefix = ""; $link_postfix = " "; $cache_file = "heise.first.cache"; $cache_time = 200; $max_items = 20; // End of customizations //$backend = "http://www.heise.de/newsticker/heise.rdf"; $backend = "http://www.heise.de/security/news/news.rdf"; //$backend = "http://www.golem.de/golem_backend.rdf"; $items = 0; $time = split(" ", microtime()); srand((double)microtime()*1000000); $cache_time_rnd = 300 - rand(0, 600); if ( (!(file_exists($cache_file))) || ((filectime($cache_file) + $cache_time - $time[1]) + $cache_time_rnd < 0) || (!(filesize($cache_file))) ) { $fpread = @fopen($backend, 'r'); if(!$fpread) { echo "Zur Zeit nicht erreichbar "; #exit; } else { $fpwrite = @fopen($cache_file, 'w'); if(!$fpwrite) { echo "$errstr ($errno) "; exit; } else { while(! feof($fpread) ) { $buffer = @ltrim(Chop(fgets($fpread, 256))); if (($buffer == "<item>") && ($items < $max_items)) { $title = ltrim(Chop(fgets($fpread, 256))); $link = ltrim(Chop(fgets($fpread, 256))); $description = ltrim(Chop(fgets($fpread, 256))); $title = ereg_replace( "<title>", "", $title ); $title = ereg_replace( "</title>", "", $title ); $link = ereg_replace( "<link>", "", $link ); $link = ereg_replace( "</link>", "", $link ); fputs($fpwrite, "$link_prefix<A HREF=\"$link\"><span class='link'><font size='-2' face='Verdana, Arial, Helvetica, sans-serif'>$title</font></span></A>$link_postfix"); $items++; } } } @fclose($fpread); } @fclose($fpwrite); } @include($cache_file); echo "</font>"; ?> |
Re: UrlDownloadToFile - Heise.de
Aber das ist doch sehr umständlich, vor allem, da ich keine Cronjobs hab.
Warum kann ich es denn nicht so runterladen, wie oben beschrieben? Aber danke schonmal. |
Re: UrlDownloadToFile - Heise.de
lies doch einfach die url
![]() aus und parse alles was du brauchst |
Re: UrlDownloadToFile - Heise.de
Zitat:
![]() wenn du mir sagst wie (; (ich würde es gerne mit indy tcp client machen und nicht mit Idhttp) |
Re: UrlDownloadToFile - Heise.de
Oder schau mal hier:
![]() Edit: Wenn du die Datei unter Delphi auch gleich mit MSXML parsen willst, kannst du glaube ich auch gleich die URL dem MSXML übergeben. Der müsste das automatisch runterladen. Hoffe ich zumindest ;-) (selber ausprobiert habe ich es nicht..) |
Re: UrlDownloadToFile - Heise.de
Ich würde es aber gerne selber Parsen, weil,.. ich mags nicht, wenn ich ein Programm per DragnDrop zusammenstelle, das is kein Programmieren mehr.
Vor allem ist es komisch, dass anscheind niemand weiß, wie man diese Probleme wirklich programmier-technisch lösen kann oO. Aber trotzdem danke, ich schau's mir auf jeden Fall mal an. |
Re: UrlDownloadToFile - Heise.de
Das PArsen an sich ist ja nicht unbedingt ein großes Problem.
Du musst dir halt die Schlüsselwörter (Knoten) rausschreiben, nach denen Suchen (while-Schleife) und am besten die Daten dann in einen eigenen Datetyp (z.b Record) schreiben. Du kannst es ja mal ausprobieren und bei Fragen dich noch mal melden. PS: Ich kann dir da leider nichts programmieren, da ich selber gerade viel zu viel am Hut habe... |
Re: UrlDownloadToFile - Heise.de
Ja, aber sagt mir doch wie ich an diese verfickte Datei rankomme.
Egal ob per IndyTcpClient oder UrlDownloadToFile \: |
Re: UrlDownloadToFile - Heise.de
Moin,
ich dachte das wäre klar :grubel: Ich hatte dir doch auch den Link gegeben... Und hier noch mal was (ausprobiert!):
Delphi-Quellcode:
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin try Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; except Result := False; end; end; procedure TForm1.Button1Click(Sender: TObject); const SourceFile = 'http://www.heise.de/security/news/news.rdf'; DestFile = 'c:\news.rdf'; begin DownloadFile(SourceFile, DestFile) then end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz