Что нового

[Сеть, интернет] Поиск на странице с кодировкой Win - 1251

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Нужна помощь в решении проблемы с поиском на странице с кодировкой Windows-1251. Обычным поиском Fire Fox нормально ищет текст на странице, а из под autoIT через команду _FFSearch находит только уникод, в кодировке Windows-1251 находит только цифры и инглиш символы. Как можно организовать поиск в этой кодировке? Fire Fox как браузер обязателен.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Сохраняйте страницу через inetGet(), а потом ищите в файле.
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Suppir
Пробовал не подходит - долго очень.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Может попробовать:
* получить HTML страницы и искать с помощью регулярных выражений;
* перевести нужный текст Unicode и искать, или наоборот (Encoding UDF);
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
`p r o x y
Если не затруднит объясните как можно при помощи этой UDF конвертнуть страницу из 1251 в Unicode , а то я ее скачал открыл и не нашел там конвертации в таком направлении , понимаю что оно там есть но применить эту UDF в силу своей неопытности не магу , подскажите как проходит эта конвертация?
можно ли с помощью нее сконвертировать уже открытую моим скриптом страницу, получить из нее то что надо вернуть значение в скрипт, или тут страница грузится в файл конвертируется и уже патом из файла берется то что надо? Если не сложно можно пример кода как это можно реализовать, задача найти фразу на странице с кодировкой Windows-1251. Заранее благодарен за помощь.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
В Encoding UDF не оказалось перекодировки cp1251 > Unicode.
Попробуйте следующую функцию:
Код:
Func _1251toUnicode($s1251_String)
	If StringStripWS($s1251_String, 8) == '' Then
		SetError(1)
		Return ''
	EndIf

	Local	$sUnicode_String = '', $i1251_Code, $iUnicode_Code

	For $i=1 To StringLen($s1251_String)
		$i1251_Code = Asc(StringMid($s1251_String, $i, 1))

		If $i1251_Code == 184 Then
			$iUnicode_Code = 1105
		ElseIf $i1251_Code == 168 Then
			$iUnicode_Code = 1024
		ElseIf $i1251_Code > 191 AND $i1251_Code < 256 Then
			$iUnicode_Code = $i1251_Code+848
		Else
			$iUnicode_Code = $i1251_Code
		EndIf

		$sUnicode_String &= Chr($iUnicode_Code)
	Next

	SetError(0)
	Return $sUnicode_String
EndFunc
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Еще раз извиняюсь за нубство, а не могли бы вы показать как этот код на практике применить в маем случае .

Мне необходимо найти фразу которая появится на динамической странице приблизительно через 50 секунд после загрузки страницы просуществует 25 секунд и исчезнет.

Можно ли приведенную выше функцию использовать в цикле по ходу моего скрипта без принудительного вызова функции?
И покажите пожалуйста где указать и как, то что нужно искать, и как указать на какой странице произвести поиск.

Просто для меня пока что такие функции все равно что квантовая физика... Вся надежда только на вас и на ваше снисхождение к пытающимуся освоить AutoIT
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
С таким запросом Вам лучше обратиться в стол заказов. Так как пересказывать Вам всю справку по AutoIt и смежным областям деятельности программирования нет ни возможности, ни желания. Кстати, в справке есть все, что Вы спрашивали. Помочь всегда рад, да и многие другие помогут, а для этого надо и вопрос задать правильно. Резюмирую:
1. Либо: стол заказов - аля «скрипты на заказ».
2. Либо: 1 тема – 1 вопрос.
 

major66

Новичок
Сообщения
1
Репутация
0
Код:
WinActivate("[CLASS:MozillaUIWindowClass]")
Send("^a")
Send("^c")
$fString = ""
$all = ClipGet()
;MsgBox(0, "", $all)
if StringInStr($fString, $all) Then
	MsgBox(0, "", "YES")
Else
	MsgBox(0, "", "NO")
Endif
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
OffTopic:
major66
а где же обращение "есть, так точно, будет сделано"? плохой майор, не хочет быть генералом ;D
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
`p r o x y
дело в том что как я понимаю и применяю предложный вами код у меня не чего не находит, очевидно что, чтото делаю не так ,вот и попытался уточнить как пользоваться декодированием. У меня почему то даже вариант предложенный major66 не находи , хотя чего уж проще выделил скопировал в буфер и там поискал что надо. Находит только в том случае если предварительно в буфер скопировать искомую фразу, типо сам скопировал и сам нашел а со страницы когда весь текст в буфере не находит (.
Резюме, спасибо за помощь и за предложенные варианты тема решена, буду пытаться правильно применить предложенные варианты , хотя на данном этапе понятия не имею как.
 
Верх