$sFavIcon = _InetGetFavIcon('http://google.ru', @DesktopDir, 'Google.ru_')
ConsoleWrite($sFavIcon & @LF)
Func _InetGetFavIcon($sPage, $sSavePath = '', $sFileNamePrefix = '')
Local $sHost, $sHtml, $sFavIcon, $sRel_FavIcon, $sFavIcon_Name
$sPage = StringRegExpReplace($sPage, '/+$', '')
$sHost = StringRegExpReplace($sPage, '(?i)^(https?://[^/]*)(/.*)?', '\1')
$sHtml = BinaryToString(InetRead($sPage))
$sRel_FavIcon = StringRegExpReplace($sHtml, '(?si).*<link\s*rel="(?:shortcut\s*)?icon"\s*(?:type=".*")?\s*href="(.*?)"\s*/>.*', '\1')
If Not @extended Then
$sRel_FavIcon = '/favicon.ico'
EndIf
$sRel_FavIcon = StringRegExpReplace($sRel_FavIcon, '^/+', '')
$sFavIcon = $sRel_FavIcon
If Not StringRegExp($sFavIcon, '(?i)^https?://') Then
$sFavIcon = $sPage & '/' & $sFavIcon
EndIf
$sFavIcon_Name = $sFileNamePrefix & StringRegExpReplace($sFavIcon, '^.*/', '')
If $sSavePath <> '' Then
If Not InetGet($sFavIcon, $sSavePath & '\' & $sFavIcon_Name) Then
$sFavIcon = $sHost & '/' & $sRel_FavIcon
If Not InetGet($sFavIcon, $sSavePath & '\' & $sFavIcon_Name) Then
Return SetError(1, 0, $sFavIcon)
EndIf
EndIf
EndIf
Return $sFavIcon
EndFunc