Guten Tag.
Heute stelle ich euch mein kleines Programm vor, dass von der Seite http://www.teedb.info/ alle Player- und Gameskins runterlädt.
Die Links und Namen der Skins kriege ich mithilfe von StringRegExp und mit _INetGetSource heraus.
Einfach starten und warten, bis alle Player- (459) und Gameskins (40) runtergeladen sind.
Playerskins-Skript:
[autoit]#include <INet.au3>
[/autoit][autoit][/autoit][autoit]$sSource = _INetGetSource('http://teedb.info/index.php?section=skins')
[/autoit][autoit][/autoit][autoit]$aPic = _GetPicture($sSource)
If Not IsArray($aPic) Then Exit MsgBox(16,'Error','Quelltext hat keinen Inhalt. Rückgabewert von StringRegExp ergab kein Array.')
$sRes = ''
DirCreate(@ScriptDir & '\Playerskins')
For $i = 0 To UBound($aPic) -1 Step +1
$sSource_Player = _INetGetSource('http://teedb.info/' & StringReplace($aPic[$i],'&','&'))
$sFileName = _GetFileName($sSource_Player)
$sDownloadPath = _GetDLPath($sSource_Player)
InetGet(StringReplace($sDownloadPath,'&','&'),@ScriptDir & '\Playerskins\' & $sFileName)
Next
Func _GetPicture($sSrc)
If $sSrc = '' Then Return -1
$aRegExp = StringRegExp($sSrc,'(?:<div style="[^"]+"><img src="[^"]+"\salt="[^"]+"></div><div style="[^"]+"><a href="([^"]+)"\sclass="[^"]+">|<a href="([^"]+)"\sclass="[^"]+"><img src="[^"]+"\salt="[^"]+"></a></td>)',3)
If IsArray($aRegExp) Then Return $aRegExp
Return -2
EndFunc
Func _GetFileName($sSrc)
If $sSrc = '' Then Return -1
$aRegExp = StringRegExp($sSrc,'"\s>([^<]+)</a>\s\(\d+\skB\)\s+</li>',3)
$sRet = ''
If IsArray($aRegExp) Then
$sRet = $aRegExp[0]
Return $sRet
EndIf
Return -2
EndFunc
Func _GetDLPath($sSrc)
If $sSrc = '' Then Return -1
$aRegExp = StringRegExp($sSrc,'<a href="([^"]+)"\s>[^<]+</a>\s\(\d+\skB\)',3)
$sRet = ''
If IsArray($aRegExp) Then
$sRet = 'http://teedb.info/' & $aRegExp[0]
Return $sRet
EndIf
Return -2
EndFunc
Gameskins-Skript:
[autoit]#include <INet.au3>
[/autoit][autoit][/autoit][autoit]Global $sURL = 'http://www.teedb.info/index.php?section=gameskins'
Global $sDirPath = @ScriptDir & '\Gameskins'
Global $sSource
Global $aLinksToSkin
If Not FileExists($sDirPath & '\') Then DirCreate($sDirPath)
[/autoit][autoit][/autoit][autoit]$sSource = _INetGetSource($sURL)
$aLinksToSkin = _GetLinksToSkin($sSource)
If Not IsArray($aLinksToSkin) Then Exit MsgBox(16,'Error','Quelltext beinhaltet keine Zeichen. StringRegExp ergab kein Array. _GetLinksToArray($sSrc) = ' & $aLinksToSkin)
For $i = 0 To UBound($aLinksToSkin) -1 Step +1
$sSrc_DirectLink = _INetGetSource('http://teedb.info/' & StringReplace($aLinksToSkin[$i],'&','&'))
$sFile = _GetFileName($sSrc_DirectLink)
$sDownloadPath = _GetDLPath($sSrc_DirectLink)
InetGet($sDownloadPath,$sDirPath & '\' & $sFile)
Next
Func _GetLinksToSkin($sSrc)
Local $aRet
If $sSrc = '' Then Return -1
$aRet = StringRegExp($sSrc,'<td><a href="([^"]+)"\sclass="[^"]+"><img src="[^"]+"\salt="[^"]+"></a></td>',3)
If IsArray($aRet) Then Return $aRet
Return -2
EndFunc
Func _GetFileName($sSrc)
If $sSrc = '' Then Return -1
$aRet = StringRegExp($sSrc,'<a href="[^"]+"\s>\s+([^<]+)</a>\s\(\d+\skB\)',3)
If Not IsArray($aRet) Then Return -2
$sRet = $aRet[0]
Return $sRet
EndFunc
Func _GetDLPath($sSrc)
If $sSrc = '' Then Return -1
$aRet = StringRegExp($sSrc,'<a href="([^"]+)"\s>\s+[^<]+</a>\s\(\d+\skB\)',3)
If Not IsArray($aRet) Then Return -2
$sRet = 'http://teedb.info/' & StringReplace($aRet[0],'&','&')
Return $sRet
EndFunc
Viel Spass.
Mit freundlichen Grüßen,
Understood.