Hey ist es möglich RSS-Feeds in ein Skript einzubinden?
gruß peggel
Hey ist es möglich RSS-Feeds in ein Skript einzubinden?
gruß peggel
Hi,
ich würde mal behaupten bedingt JA, um welchen geht es denn genau?
So long,
Mega
Ist ja eigentlich egal um welchen RSS-Ticker es genau geht. Es soll ja Variabeln sein.
Zum testen nehm ich jetzt mal:
http://www.heise.de/newsticker/heise.rdf
Ich denke mal ich muss den Inhalt der rdf Datei halt speichern und dann die einzelnen Items auswerten.
Ich dachte nur vl. hat jemand schonmal sowas geschrieben. Man muss das Rad ja nicht neu erfinden.
Hi!
Es gibt eine XML-UDF, aber hier ist es wohl schneller und einfach mit RegEx geparst.
Ich schreibe so etwas gerade als Übung in C#, bringt uns also nicht wirklich weiter
peethebee
So ich habe mal einen Anfang gemacht:
Kann mir mal bitte einer drüber schauen?
Ich verstehe nicht wieso die Arrays leer sind.
#include <file.au3>
[/autoit] [autoit][/autoit] [autoit]$nOffset = 1
While 1
Dim $title
;MsgBox zum testen
MsgBox (0,"title", $title)
_FileReadToArray("heise.rdf",$title)
;MsgBox zum testen
MsgBox (0,"title", $title)
$link=$title
$title = StringRegExp($title, '<(?i)title>(.*?)</(?i)title>', 1, $nOffset)
$link = StringRegExp($link, '<(?i)link>(.*?)</(?i)link>', 1, $nOffset)
For $i = 0 to UBound($title) - 1
msgbox(0, "RegExp Test with Option 1 - "& $i, $title[$i])
Next
For $i = 0 to UBound($link) - 1
msgbox(0, "RegExp Test with Option 1 - "& $i, $link[$i])
Next
WEnd
Hier habe ich mal die heise.rdf noch reingepackt:
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">
<channel>
<title>heise online News</title>
<link>http://www.heise.de/newsticker/</link>
<description>Nachrichten nicht nur aus der Welt der Computer</description>
</channel>
<item>
<title>AMD senkt Umsatzerwartung</title>
<link>http://www.heise.de/newsticker/meldung/87996/from/rss09</link>
</item>
<item>
<title>Telekom und ver.di stehen vor Machtkampf</title>
<link>http://www.heise.de/newsticker/meldung/87993/from/rss09</link>
</item>
<item>
<title>Lizenzvertrag zwischen Nokia und Qualcomm läuft aus</title>
<link>http://www.heise.de/newsticker/meldung/87994/from/rss09</link>
</item>
<item>
<title>SanDisk und Yahoo wollen Apples iPod vom Thron stoßen</title>
<link>http://www.heise.de/newsticker/meldung/87992/from/rss09</link>
</item>
<item>
<title>Vintage Computer Festival: Waduzitdo - mach, was ich dir sage</title>
<link>http://www.heise.de/newsticker/meldung/87991/from/rss09</link>
</item>
<item>
<title>Sun mit Klage gegen Hynix vorläufig gescheitert</title>
<link>http://www.heise.de/newsticker/meldung/87990/from/rss09</link>
</item>
<item>
<title>YouTube will mit thailändischer Zensur kooperieren</title>
<link>http://www.heise.de/newsticker/meldung/87989/from/rss09</link>
</item>
<item>
<title>Sony zieht sich aus Chipentwicklung mit Toshiba und NEC zurück</title>
<link>http://www.heise.de/newsticker/meldung/87988/from/rss09</link>
</item>
<item>
<title>Schweiz testet virtuellen Behördengang mittels digitaler Signatur</title>
<link>http://www.heise.de/newsticker/meldung/87985/from/rss09</link>
</item>
<item>
<title>Fujifilm plant Einstieg ins Tintendruckergeschäft</title>
<link>http://www.heise.de/newsticker/meldung/87983/from/rss09</link>
</item>
<item>
<title>Neuer Intershop-Chef setzt auf Service</title>
<link>http://www.heise.de/newsticker/meldung/87981/from/rss09</link>
</item>
<item>
<title>Windows Vista Resource Kit erhältlich</title>
<link>http://www.heise.de/newsticker/meldung/87978/from/rss09</link>
</item>
<item>
<title>Debian GNU/Linux 4.0 (Etch) veröffentlicht</title>
<link>http://www.heise.de/newsticker/meldung/87980/from/rss09</link>
</item>
<item>
<title>Microsoft veröffentlicht genügsameren Movie Maker für Vista</title>
<link>http://www.heise.de/newsticker/meldung/87979/from/rss09</link>
</item>
<item>
<title>Gaim heißt jetzt Pidgin</title>
<link>http://www.heise.de/newsticker/meldung/87975/from/rss09</link>
</item>
<item>
<title>RIAA stört Musik-Marketing</title>
<link>http://www.heise.de/newsticker/meldung/87977/from/rss09</link>
</item>
<item>
<title>Patienten telefonieren teuer -- Krankenhäuser lockern Handy-Verbot</title>
<link>http://www.heise.de/newsticker/meldung/87976/from/rss09</link>
</item>
<item>
<title>Nachgelegt: neue Treiber und BIOS-Versionen</title>
<link>http://www.heise.de/newsticker/meldung/87973/from/rss09</link>
</item>
<item>
<title>Nokia Siemens Networks sieht sich gegen Korruption gewappnet</title>
<link>http://www.heise.de/newsticker/meldung/87974/from/rss09</link>
</item>
<item>
<title>Was war. Was wird.</title>
<link>http://www.heise.de/newsticker/meldung/87972/from/rss09</link>
</item>
<item>
<title>Release Candidate 1 von Thunderbird 2 erschienen</title>
<link>http://www.heise.de/newsticker/meldung/87971/from/rss09</link>
</item>
<item>
<title>Acer überholt Toshiba, sitzt Dell im Nacken</title>
<link>http://www.heise.de/newsticker/meldung/87970/from/rss09</link>
</item>
<item>
<title>SPD uneins über Schäuble-Pläne</title>
<link>http://www.heise.de/newsticker/meldung/87969/from/rss09</link>
</item>
<item>
<title>Mehrere Schwachstellen in Winamp</title>
<link>http://www.heise.de/newsticker/meldung/87968/from/rss09</link>
</item>
<item>
<title>Vonage darf vorerst weiterhin Neukunden werben</title>
<link>http://www.heise.de/newsticker/meldung/87967/from/rss09</link>
</item>
<item>
<title>Telecom-Italia-Chef "eliminiert"</title>
<link>http://www.heise.de/newsticker/meldung/87966/from/rss09</link>
</item>
<item>
<title>Asus.com verteilt Schadsoftware [2. Update]</title>
<link>http://www.heise.de/newsticker/meldung/87965/from/rss09</link>
</item>
<item>
<title>Epson droht Patentklagen gegen Druckertintenanbieter an</title>
<link>http://www.heise.de/newsticker/meldung/87963/from/rss09</link>
</item>
<item>
<title>Französische Nachrichtenagentur einigt sich mit Google</title>
<link>http://www.heise.de/newsticker/meldung/87964/from/rss09</link>
</item>
<item>
<title>Niedersachsen-Innenminister hält schärfere Überwachung für "dringend geboten"</title>
<link>http://www.heise.de/newsticker/meldung/87962/from/rss09</link>
</item>
<item>
<title>Türkei will Internetzensur verschärfen</title>
<link>http://www.heise.de/newsticker/meldung/87961/from/rss09</link>
</item>
<item>
<title>Entwickler-Kit für Windows Home Server</title>
<link>http://www.heise.de/newsticker/meldung/87960/from/rss09</link>
</item>
<item>
<title>Qualcomm und Nokia weiter im Clinch</title>
<link>http://www.heise.de/newsticker/meldung/87957/from/rss09</link>
</item>
<item>
<title>Mit Stimmanalyse gegen Sozialbetrüger</title>
<link>http://www.heise.de/newsticker/meldung/87959/from/rss09</link>
</item>
<item>
<title>Neuer elektrischer Geschwindigkeitsrekord</title>
<link>http://www.heise.de/newsticker/meldung/87955/from/rss09</link>
</item>
<item>
<title>Infogrames-Gründer nimmt nach 24 Jahren den Hut</title>
<link>http://www.heise.de/newsticker/meldung/87956/from/rss09</link>
</item>
<item>
<title>Ver.di-Chef droht mit Arbeitskampf bei der Telekom</title>
<link>http://www.heise.de/newsticker/meldung/87954/from/rss09</link>
</item>
<item>
<title>Sagem produziert neues Vodafone-Handy</title>
<link>http://www.heise.de/newsticker/meldung/87953/from/rss09</link>
</item>
<item>
<title>Lenovo will mit Privatanwendern ins Geschäft kommen</title>
<link>http://www.heise.de/newsticker/meldung/87952/from/rss09</link>
</item>
<item>
<title>Epson will Nachbauer von Tintenpatronen vom US-Markt verdrängen</title>
<link>http://www.heise.de/newsticker/meldung/87951/from/rss09</link>
</item>
<item>
<title>Virus infiziert iPods unter Linux</title>
<link>http://www.heise.de/newsticker/meldung/87949/from/rss09</link>
</item>
<item>
<title>BKA durchforstete Millionen Telefonverbindungen in Korruptionsaffäre</title>
<link>http://www.heise.de/newsticker/meldung/87950/from/rss09</link>
</item>
<item>
<title>Weiterer Microsoft-Patchday im April</title>
<link>http://www.heise.de/newsticker/meldung/87946/from/rss09</link>
</item>
<item>
<title>Swisscom erhält grünes Licht für Übernahme von Fastweb</title>
<link>http://www.heise.de/newsticker/meldung/87947/from/rss09</link>
</item>
<item>
<title>Wiedervereinigung bei den 3D-Desktops für Linux</title>
<link>http://www.heise.de/newsticker/meldung/87945/from/rss09</link>
</item>
<item>
<title>Neues Abkommen zum Transfer von Flugpassagierdaten nimmt Gestalt an</title>
<link>http://www.heise.de/newsticker/meldung/87943/from/rss09</link>
</item>
<item>
<title>c't magazin.tv: Wirkungslose Webfilter</title>
<link>http://www.heise.de/newsticker/meldung/87929/from/rss09</link>
</item>
<item>
<title>DRM-Diskussionen auch bei Microsoft</title>
<link>http://www.heise.de/newsticker/meldung/87942/from/rss09</link>
</item>
<item>
<title>Siemens: Aufsichtsräte drängen auf Pierers Rücktritt</title>
<link>http://www.heise.de/newsticker/meldung/87941/from/rss09</link>
</item>
<item>
<title>Heftige Kritik an Schäubles Vorstoß zu Grundgesetzänderung</title>
<link>http://www.heise.de/newsticker/meldung/87939/from/rss09</link>
</item>
<item>
<title>US-Rechnungshof mahnt Finanzbehörde zu mehr IT-Sicherheit</title>
<link>http://www.heise.de/newsticker/meldung/87933/from/rss09</link>
</item>
<item>
<title>SCO vs. Linux: Wo in der Welt ist Pamela Jones?</title>
<link>http://www.heise.de/newsticker/meldung/87931/from/rss09</link>
</item>
<item>
<title>Vorratsdatenspeicherung kommt die TK-Branche teuer zu stehen</title>
<link>http://www.heise.de/newsticker/meldung/87932/from/rss09</link>
</item>
<item>
<title>Russland sieht Probleme bei Verschärfung des Urheberrechts</title>
<link>http://www.heise.de/newsticker/meldung/87926/from/rss09</link>
</item>
<item>
<title>Software AG kauft in den USA zu</title>
<link>http://www.heise.de/newsticker/meldung/87928/from/rss09</link>
</item>
<item>
<title>Google Maps wird persönlich</title>
<link>http://www.heise.de/newsticker/meldung/87918/from/rss09</link>
</item>
<item>
<title>Nokia zahlt für UMTS-Patente 20 Millionen US-Dollar an Qualcomm</title>
<link>http://www.heise.de/newsticker/meldung/87925/from/rss09</link>
</item>
<item>
<title>Bericht: EU-Kommission könnte Microsofts Lizenzeinnahmen stark beschneiden</title>
<link>http://www.heise.de/newsticker/meldung/87921/from/rss09</link>
</item>
<item>
<title>Neue Mitglieder bei der Linux Foundation</title>
<link>http://www.heise.de/newsticker/meldung/87922/from/rss09</link>
</item>
<item>
<title>Online-Durchsuchung und präventive TK-Überwachung in der Schweiz geplant</title>
<link>http://www.heise.de/newsticker/meldung/87914/from/rss09</link>
</item>
</rdf:RDF>
Alles anzeigen
Was ich also versuche ist, in der ersten MessageBox will ich die ganzen Titel ausgeben. In der zweiten die dazugheörigen Links.
Hi,
warum nimmst du nicht _stringBetween?
So long,
Mega
Die Funktion kannte ich garnicht. Danke
Ich hab nach einigem rumprobieren mal was von dir aufgeschnappt.
Aber leider bekomme ich so immer nur den allerletzten Titel aus der Datei ausgegeben. Und wenn ich das
If StringInStr($lines[$i], 'title') <> 0 Then
[/autoit]weg lasse bekomme ich garnichts ausgegeben. Das verstehe ich nicht so ganz.
#include <string.au3>
#include <Array.au3>
#include <file.au3>
Dim $lines
Dim $a
If Not _FileReadToArray("heise.rdf", $lines) Then
MsgBox(4096, "Error", " Error reading log to Array error:" & @error)
Exit
EndIf
For $i = 1 To $lines[0]
If StringInStr($lines[$i], 'title') <> 0 Then
$a = _StringBetween($lines[$i], '<title>', '</title>')
EndIf
Next
_ArrayDisplay($a, "")
Hi,
na wenn du es immer wieder kaputt machst
#include <string.au3>
#include <Array.au3>
Global $a = _StringBetween(FileRead(FileOpen("heise.rdf", 0)), '<title>', '</title>')
_ArrayDisplay($a, "")
Edit: Noch zur Erklärung. Du gehst jede Zeile durch in der title enthalten ist und fragst, ob etwas zwischen title und /title ist, dann speichert er dir dies in einem Array. Klingt logisch, dass er dann zum Schluss nur den letzten Inhalt anzeigen kann, oder?
So long,
Mega
Ich muss das auch immer so kompliziert machen.
So gleich das nächste Problem:
Wenn ich mit StringBetween arbeite, schreibt er ja in den Index [0] schon gleich den ersten Wert.
Wie kann ich denn nun die Anzahl der Indizes herausbekommen, die steht ja normalerweise im Index [0]?
HI,
schau dir mal Ubound an.
So long,
Mega
hi,
um auch mal ne Alternative zu zeigen habe ich mal msxml bemüht.
Vielleicht ist das ja auch ein brauchbare möglichkeit für Dich. Das Skript
erledigt die Anforderung noch sehr ... rustikal ... aber das läßt sich ja recht einfach ändern .
#include <array.au3>
InetGet("http://www.heise.de/newsticker/heise.rdf", @ScriptDir&"\heise.rdf",1,1)
While @InetGetActive
TrayTip("Downloading", "Bytes = " & @InetGetBytesRead, 10, 16)
Sleep(250)
Wend
$xmlDoc=ObjCreate("Msxml2.DOMDocument.3.0")
$xmlDoc.async="false"
$xmlDoc.load(@ScriptDir&"\heise.rdf")
$nodeCollection = $xmlDoc.selectNodes("*/item/title")
Dim $aElements[$nodeCollection.length]
For $i=0 To $nodeCollection.length -1
$aElements[$i]=$nodeCollection.item($i).text
Next
_ArrayDisplay($aElements,"xPathResult")