webseiten auslesen und manipulieren
aniit
- php
Hallo zusammen,
ich möchte die aktuellen nachrichten aus feuerfehr-seite auslsesen und die als newsfeed bei unseren ausgeben.
<?php
$fd = fopen ("http://www.feuerwehr-xxx.de/home", "r");
while (!feof($fd)) {
$buffer = fgets($fd, 4096);
$ausgabe = strip_tags ( $buffer, "<tbody><p><script><table><tr><td><strong>" );
echo $ausgabe;
}
fclose ($fd);
?>
Es soll erst ab 7 table-tag auslesen. Hat jemand idee wie ich vorgehen soll.
Vielen Dank vorab
aniit
Hat jemand idee wie ich vorgehen soll.
Schreib' den Anbieter der anderen Seite an und bitte Ihn, die Inhalte in einem Format bereitzustellen, welches für Syndikation geeignet ist. RSS oder Atom sind hier sehr verbreitet.
Danke Tom und suit für Deine schnelle hilfe - ich bin beim ausprobieren... mal sehen ob ich es hinbekomme
VG
Moin!
Danke Tom und suit für Deine schnelle hilfe - ich bin beim ausprobieren... mal sehen ob ich es hinbekomme
Der Tipp von suit ist übrigens der mit dem höheren Nutzen. Ab der dritten Änderung an der Webseite wirst Du merken, dass hierdurch:
Stell Dir den Spaß vor, der Betreiber baut - nur um Dich zu ärgern - eine Anzahl von
<!-- <table> --> ein und - nur um Dich zu ärgern - wird diese Anzahl jeden Tag zufällig 8:00, 12:00, 16:00 und 20:00 gewechselt. Dann wirst Du mit dem Reparieren Deines Datenstehlers nicht fertig. Treibst Du den Betreiber des gemolkenen Webauftritts zum bösartigen Handeln, dann liefert er Dir brav Daten, die ziemlich echt aussehen - es aber gewiss nicht sind. Berät den ein Anwalt wie der selbsterschossene Gravenreuth einer war, dann schickt er Dir erst falsche Daten und mahnt Dich dann auch noch ab.
Die siebente Tabelle kann nämlich auch so aussehen:
<table><tr><th>Eh! Da klaut einer Daten!</th></tr></table>
Es gibt außer mir nämlich noch ein paar Leute mehr, die sich mitunter sehr garstige Dinge einfallen lassen... fragst Du aber nett, dann stellt Dir der Betreiber vielleicht sogar genau die benötigten Daten in einer für Dich brauchbaren Form bereit.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
Danke Tom und suit für Deine schnelle hilfe - ich bin beim ausprobieren... mal sehen ob ich es hinbekomme
Der Tipp von suit ist übrigens der mit dem höheren Nutzen. Ab der dritten Änderung an der Webseite wirst Du merken, dass hierdurch:
- Deine Kosten sinken (oder die Deines Kunden)
- Dein guter Ruf erhalten leibt - gerade auch der als Entwickler.
Stell Dir den Spaß vor, der Betreiber baut - nur um Dich zu ärgern - eine Anzahl von
<!-- <table> --> ein und - nur um Dich zu ärgern - wird diese Anzahl jeden Tag zufällig 8:00, 12:00, 16:00 und 20:00 gewechselt. Dann wirst Du mit dem Reparieren Deines Datenstehlers nicht fertig. Treibst Du den Betreiber des gemolkenen Webauftritts zum bösartigen Handeln, dann liefert er Dir brav Daten, die ziemlich echt aussehen - es aber gewiss nicht sind. Berät den ein Anwalt wie der selbsterschossene Gravenreuth einer war, dann schickt er Dir erst falsche Daten und mahnt Dich dann auch noch ab.
Die siebente Tabelle kann nämlich auch so aussehen:
<table><tr><th>Eh! Da klaut einer Daten!</th></tr></table>
Es gibt außer mir nämlich noch ein paar Leute mehr, die sich mitunter sehr garstige Dinge einfallen lassen... fragst Du aber nett, dann stellt Dir der Betreiber vielleicht sogar genau die benötigten Daten in einer für Dich brauchbaren Form bereit.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin fastix,
vielen Dank für Deine ehrliche Meinung. Es ist nicht meine Idee gewesen. Nach dem ich mein Chef abgeraten habe Google-Anaytic für die Seite einbauen, kam er mit so eine Aufgabe...
Viele Grüße
aniit
vielen Dank für Deine ehrliche Meinung. Es ist nicht meine Idee gewesen. Nach dem ich mein Chef abgeraten habe Google-Anaytic für die Seite einbauen, kam er mit so eine Aufgabe...
So eine Aufgabe ist nicht ungewöhnlich und auch völlig OK - nur muss sie vernünftig umgesetzt werden.
Hello,
ich möchte die aktuellen nachrichten aus feuerfehr-seite auslsesen und die als newsfeed bei unseren ausgeben.
<?php
$fd = fopen ("http://www.feuerwehr-xxx.de/home", "r");
while (!feof($fd)) {
$buffer = fgets($fd, 4096);
$ausgabe = strip_tags ( $buffer, "<tbody><p><script><table><tr><td><strong>" );
echo $ausgabe;
}
fclose ($fd);
?>
>
> Es soll erst ab 7 table-tag auslesen.
> Hat jemand idee wie ich vorgehen soll.
1\. Versichere dich, dass Du die rechte für diese Form der Nutzung hast/bekommst.
2\. Lies das ganze Dokument in eine Textvariable ein
3\. Stelle die Codierung der Seite fest und berücksichrtige sie
4\. Parse das Dokument, z.B. mittles preg\_match\_all()
<http://de3.php.net/manual/en/function.preg-match-all.php>
Wenn Du mit fopen("http:// ...") und einer Schleife arbeitest, benutze sicherheitshalber fread() und eine Leselänge von z.B. 128 Bytes. Der Versuch, aus dem Wrapper (http) ganze Zeilen auszulesen, führt regelmäßig zu Störungen. Setze Dir außerdem die Timeouts für fopen() und fread() vernünftig.
<http://de3.php.net/manual/en/filesystem.configuration.php#ini.default-socket-timeout>
wird benutzt von <http://de3.php.net/manual/en/function.fsockopen.php>
<http://de3.php.net/manual/en/function.stream-set-timeout.php>
wird benutzt von <http://de3.php.net/manual/en/function.fread.php>
Alternativ kannst Du die gesamte Seite mit file\_get\_contents() einlesen, aber auch da die Timeouts nicht vergessen, wenn due ein "Stehenbleiben" des Scriptes verhindern willst.
Allerdings würde ich auch Caching einführen, damit nicht bei jedem Zugriff auf Deine Seite die gegrabbte Seite ausgewertet werden muss, sondern nur dann, wenn sie sich geändert hat.
Strip\_Tags() arbeitet unzuverlässig. Außerdem ist es ja unsinnig, die Tags zu entfernen, die Du anschließend auswerten/zählen willst.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>