Что нового

[Сеть, интернет] Получить иконку сайта (*.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,624
Репутация
2,443
Корректнее будет получать путь к иконке с тела страницы:

Код:
$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,624
Репутация
2,443
Kaster [?]
В том что “стандарт” это общепринятое, а “по умолчанию” это начальная настройка, т.е предустановленная опция. Favicon.ico это не стандарт, я у себя на сайте могу любое имя файла задать, и не обязательно *.ico, и для каждой страницы отдельно между прочим.

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

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

kaster

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

CreatoR

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

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

Dream-52

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

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

Я буду вниматильнее ...не нужно строгий приговор.И если бы не я - пошел бы разговор о системе "предупреждающих балов" ?
 

CreatoR

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