Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi UrlDownloadToFile - Heise.de (https://www.delphipraxis.net/30791-urldownloadtofile-heise-de.html)

StanY 29. Sep 2004 12:51


UrlDownloadToFile - Heise.de
 
Warum kann ich mit UrlDownloadToFile nicht auf heise.de, bzw. genauer gesagt auf http://www.heise.de/newsticker/heise.rdf zugreifen?

Er lädt die Datei einfach nicht runter. Ein Fehler tritt nicht auf.
Bei anderen Datein (z.b. meiner eigenen Homepage funktioniert es Fehlerfrei).

richard_boderich 29. Sep 2004 13:42

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>";
?>

StanY 29. Sep 2004 14:00

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.

endeffects 1. Okt 2004 11:50

Re: UrlDownloadToFile - Heise.de
 
lies doch einfach die url http://www.heise.de/security/news/news.rdf
aus und parse alles was du brauchst

StanY 2. Okt 2004 13:32

Re: UrlDownloadToFile - Heise.de
 
Zitat:

Zitat von endeffects
lies doch einfach die url http://www.heise.de/security/news/news.rdf
aus und parse alles was du brauchst

http://www.delphipraxis.net/internal...ct.php?t=34401

wenn du mir sagst wie (;

(ich würde es gerne mit indy tcp client machen und nicht mit Idhttp)

Alexander 2. Okt 2004 15:08

Re: UrlDownloadToFile - Heise.de
 
Oder schau mal hier:
http://www.delphipraxis.net/internal_redirect.php?t=75

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..)

StanY 2. Okt 2004 16:07

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.

Alexander 3. Okt 2004 10:43

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...

StanY 3. Okt 2004 14:21

Re: UrlDownloadToFile - Heise.de
 
Ja, aber sagt mir doch wie ich an diese verfickte Datei rankomme.

Egal ob per IndyTcpClient oder UrlDownloadToFile \:

Alexander 3. Okt 2004 15:07

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.
Seite 1 von 2  1 2      

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