Что нового

[Сеть, интернет] Получить иконку сайта (*.ico)

Dream-52

...
Сообщения
82
Репутация
1
Ребята,кто подскажет,как получить иконку сайта?

Например www.google.com ...? :whistle:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Попробуй
Код:
InetGet('http://google.com/favicon.ico', @ScriptDir & '\google.ico')
 
Автор
D

Dream-52

...
Сообщения
82
Репутация
1
Kaster сказал(а):
Попробуй
Код:
InetGet('http://google.com/favicon.ico', @ScriptDir & '\google.ico')
Я имею ввиду , както это сделать на автомате....
Чтобы незная имени иконки ;)
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Это стандартное имя файла для всех сайтов)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Корректнее будет получать путь к иконке с тела страницы:

Код:
$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
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
OffTopic:
CreatoR [?]
Это не стандартное, а дефолтное
а в чем разница? :smile:
в любом случае, я еще не встречал иконок отличных от этого.
 
Автор
D

Dream-52

...
Сообщения
82
Репутация
1
CreatoR сказал(а):
Корректнее будет получать путь к иконке с тела страницы:

Код:
$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

Cпасибо,попробую...
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Tommy Dreams

{OverQuoteWarn}
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Kaster [?]
В том что “стандарт” это общепринятое, а “по умолчанию” это начальная настройка, т.е предустановленная опция. Favicon.ico это не стандарт, я у себя на сайте могу любое имя файла задать, и не обязательно *.ico, и для каждой страницы отдельно между прочим.

я еще не встречал иконок отличных от этого
Вот тут указана иконка.

P.S
По поводу предупреждения, это уже не первый раз, пора бы вынести его через профиль (установить процент предупреждения).
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
CreatoR
в данном случае, дефолт потихоньку превратился в стандарт ;D я знаю, что его можно ставить каким угодно, но скажи честно, по твоему мнению, много ли людей его меняют? ;) без лишних телодвижений, достаточно просто положить иконку в корень, не модифицируя код самой страницы.
CreatoR [?]
По поводу предупреждения, это уже не первый раз, пора бы вынести его через профиль (установить процент предупреждения).
сделано
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Kaster [?]
скажи честно, по твоему мнению, много ли людей его меняют?
Моё мнение тут неважно (и да, я согласен что это никто почти не меняет), важно то, что это нужно предусматривать.

Не видно :blum: 5% явно мало, нужно чтобы видно было что пользователь под наблюдением. Как минимум 10% и сообщение через ПМ (там есть шаблоны).
 
Автор
D

Dream-52

...
Сообщения
82
Репутация
1
CreatoR сказал(а):
Kaster [?]
скажи честно, по твоему мнению, много ли людей его меняют?
Моё мнение тут неважно (и да, я согласен что это никто почти не меняет), важно то, что это нужно предусматривать.

Не видно :blum: 5% явно мало, нужно чтобы видно было что пользователь под наблюдением. Как минимум 10% и сообщение через ПМ (там есть шаблоны).
Я буду вниматильнее ...не нужно строгий приговор.И если бы не я - пошел бы разговор о системе "предупреждающих балов" ?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Tommy Dreams [?]
Я буду вниматильнее
Как иронично... пишешь что будешь вниматильнее, и этим же самым сообщением снова нарушаешь правила.
 
Верх