Hi Leute,
ich habe einen Receiver, der die Filminformationen eines Films schön in einer Übersicht anzeigen kann, wenn die Daten entsprechend vorliegen. Dafür benötigt er ein Bild und eine XML Datei, in der die Daten zu finden sind. Ich möchte meine Filmsammlung nun mit den entsprechenden Daten anreichern, damit das alles am Fernseher auch schön aussieht
Nun habe ich mir eine Webseite herausgesucht, von der ich die Daten haben möchte. Allerdings habe ich das noch nie gemacht und stoße schon sehr früh an meine Grenzen.
Ich möchte in einem ersten Schritt, die ersten 20 Suchergebnisse auflisten, damit ich daraus den richtigen Treffer auswählen kann (da meine Namen sicher nicht immer die genau richtigen Titel sind..).
Allerdings bekomme ich hier schon einen Fehler, den ich nicht verstehe. Und zwar schaffe ich es nicht, den Namen richtig zu extrahieren. Meine Textersetzung funktioniert nicht. Vor jedem Titel bleibt das <b> erhalten.
Davon abgesehen, würde ich mich auch freuen, wenn mir zu diesem frühen Zeitpunkt gezeigt wird, was ich schlecht mache, bzw. was ich besser machen kann.
Vielen Dank im Voraus
Im folgenden Code, wird ein Array gebildet mit den Links zu den Vorschaubildern|Titel|Link zur Filmbeschreibung:
#include <Inet.au3>
#include <Array.au3>
#include <String.au3>
#include <File.au3>
Global $aSubstitutes[7][2] = [["<b>", ""], ["</b>", ""], ["</a>", ""], ["<a href='", ""], ["'><img", ""], ["src='", ""], ["'", ""]]
$Film = "Alien"
$Adress = "http://www.filmstarts.de/suche/1/?q=" & StringReplace($Film, " ", "+")
$sSearch = _INetGetSource($Adress, True)
$aResults = _StringBetween($sSearch, 'Bitte Suche verfeinern :', '</div><!-- / searchenginezone -->')
If Not @error Then
$aResultSplit = StringSplit($aResults[0], "Treffer")
$sCounttext = "Ergebnis"
If Int($aResultSplit[1]) < 1 Or Int($aResultSplit[1]) > 1 Then $sCounttext = "Ergebnisse"
;~ MsgBox(0, "", $aResultSplit[1] & " " & $sCounttext)
;~ _ArrayDisplay($aResults)
$aResultSplit = StringSplit($aResults[0], @LF)
;~ _ArrayDisplay($aResultSplit)
$iSize = UBound($aResultSplit)
Local $aResultnames[21][3]
Local $iCount = 0
For $i = 0 To UBound($aResultSplit) - 1
If StringInStr($aResultSplit[$i], "alt='") Then
$aTestResults = _StringBetween($aResultSplit[$i], "'", "'")
;~ _ArrayDisplay($aTestResults)
If $aTestResults[0] <> "" Then
$sString = $aResultSplit[$i - 1]
_Textbereinigung()
$aResultnames[$iCount][0] = $sString
$sString = $aResultSplit[$i + 3]
_Textbereinigung()
$aResultnames[$iCount][1] = $sString
$sString = $aResultSplit[$i + 2]
_Textbereinigung()
$aResultnames[$iCount][2] = "http://www.filmstarts.de" & $sString
$iCount = $iCount + 1
EndIf
EndIf
Next
_ArrayDisplay($aResultnames)
Else
MsgBox(0, "", "0 Ergebnisse")
EndIf
Func _Textbereinigung()
For $i = 0 To UBound($aSubstitutes) - 1
$sString = StringReplace($sString, $aSubstitutes[$i][0], $aSubstitutes[$i][1])
;~ MsgBox(0,"", $sString &" | "& $aSubstitutes[$i][0] &" | "& $aSubstitutes[$i][1])
Next
EndFunc ;==>_Textbereinigung
Alles anzeigen
Edit bernd670 : Unsichtbares Zeichen entfernt s. Post 5