Что нового

Как из html файла достать значение и поместить в переменную

Vadimmm0072

Новичок
Сообщения
36
Репутация
2
Версия AutoIt:v3.2.5.4 3.

Описание:
Как из такого файла выдернуть значение находящееся в теге <text></text> и поместить в переменную?
Вот ссылка на сайт
image.png

Примечания:
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: Как из html фала выдернуть значение

А у меня вот что показывает

Код:
<document>
  <system/>
    <content>
      <result>
        <decoder>
        <path>CP1251 → CP866</path>
        <text>
          <![CDATA[ Том в устройстве C ­е имеет метки. ]]>
        </text>
        <csin/>
        <csout/>
        </decoder>
      </result>
   </content>
</document>
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Как из html фала выдернуть значение

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Как из html фала выдернуть значение" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 
Автор
V

Vadimmm0072

Новичок
Сообщения
36
Репутация
2
madmasles Извиняюсь, сонный писал, ошибку сделал ;D

Viktor1703
А у меня вот что показывает
Да по идее это сути не меняет, все ровно значение находится между тегами <text></text>
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Vadimmm0072,
Попробуйте так.
Код:
$s_URL = 'http://www.artlebedev.ru/tools/decoder/?random=' & Random(0, 1) & '&text=%20%E2%80%99%C2%AE%C2%AC%20%D1%9E%20%D0%B3%D0%B1%D0%B2%D0%B0%C2%AE%C2%A9%D0%B1%D0%B2%D1%9E%D2%90%20C%20%C2%AD%D2%90%20%D0%81%C2%AC%D2%90%D2%90%D0%B2%20%C2%AC%D2%90%D0%B2%D0%84%D0%81.&Decode=go'
$s_Sourse = InetRead($s_URL, 17)
If @error Then Exit -33
$s_Sourse = BinaryToString($s_Sourse, 4)
$sText = StringRegExpReplace($s_Sourse, '(?s).*<text>\r?\n?(.*?)\r?\n?</text>.*', '$1')
If @extended = 1 Then
	ConsoleWrite($sText & @LF)
Else
	ConsoleWrite('error' & @LF)
EndIf
$sText_1 = StringRegExpReplace($s_Sourse, '(?s).*<text>(.*?)</text>.*', '$1')
If @extended = 1 Then
	ConsoleWrite($sText_1 & @LF)
Else
	ConsoleWrite('error' & @LF)
EndIf
И посмотрите здесь: Encoding UDF - Библиотека для работы с кодировками строк
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Вот ещё вариант
Код:
#include <_XMLDomWrapper.au3>

Global $sURL = "http://www.artlebedev.ru/tools/decoder/?random=0.5753729263731685&text=%20%E2%80%99%C2%AE%C2%AC%20%D1%9E%20%D0%B3%D0%B1%D0%B2%D0%B0%C2%AE%C2%A9%D0%B1%D0%B2%D1%9E%D2%90%20C%20%C2%AD%D2%90%20%D0%81%C2%AC%D2%90%D2%90%D0%B2%20%C2%AC%D2%90%D0%B2%D0%84%D0%81.&Decode=go"

$oXMLHTTP = _XMLHTTPCreate()
$sXML = _XMLHTTPOpen($oXMLHTTP, $sURL)
_XMLLoadXML($sXML)
$aText = _XMLGetValue('//*/text')
ConsoleWrite($aText[1] & @CR)

Func _XMLHTTPCreate()
	
	Local $oXMLHTTP, $sXMLHTTP
	Local $aXMLHTTP[4] = ["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"]

	For $sXMLHTTP In $aXMLHTTP
		$oXMLHTTP = ObjCreate($sXMLHTTP)
		If IsObj($oXMLHTTP)Then
			Return SetError(0, 0, $oXMLHTTP)
        EndIf
	Next

	Return SetError(1, 0, 0)
EndFunc;==>_XMLHTTPCreate

Func _XMLHTTPOpen(ByRef $o_Obj, $s_URL)
	
	If Not IsObj($o_Obj) Then
		Return SetError(1, 0, 0)
	EndIf
	
	With $o_Obj
		.Open("GET", $s_URL, 0)
		.Send()
	EndWith
	
	Return SetError(0, 0 , $o_Obj.ResponseText)

EndFunc;==>_XMLHTTPOpen
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
madmasles
\r?\n? можно записать как \R*
 
Автор
V

Vadimmm0072

Новичок
Сообщения
36
Репутация
2
Большое спасибо всем кто помог! :IL_AutoIt_1: :IL_AutoIt_1: :IL_AutoIt_1:
 
Верх