Тема: AHK: Парсинг страницы
решено
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
решено
Исходный код страницы находится в переменной WebRequest.ResponseText.
Посылаете get запрос по нужной вам ссылке и должны получить.
Как это сделать?
Вы в своем коде зачем-то вначале отправляете get запрос:
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("GET", url)
WebRequest.Send()
А потом post:
loginBody := "form_sent=1&redirect_url=http%3A%2F%2Fulog.union-u.net%2Flogin.php&mail=" login "&pass=" password "&login=%D0%92%D0%BE%D0%B9%D1%82%D0%B8"
WebRequest.Open("POST", url)
WebRequest.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
WebRequest.Send(loginBody)
Я переделывал код под себя, взяв его на просторах данного форума)
Get отправляем, чтобы получить информацию.
Post, чтобы отправить.
Спасибо получилось, но немного не так как я хотел, он копирует код страницы со всеми элементами.
Можно но ли как-то из этого получить простой текст, который отображается на сайте без лишнего html и java кода
Такая тема уже была, пользуйтесь поиском: http://forum.script-coding.com/viewtopic.php?id=9394.
Можно но ли как-то из этого получить простой текст, который отображается на сайте без лишнего html и java кода
Можно через HTMLfile:
document := ComObjCreate("HTMLfile")
document.Open()
document.Close()
document.body.innerHTML := WebRequest.ResponseText
msgbox % document.body.innerText
stealzy, не, просто ваш вариант не совсем верный:
text =
(
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<script>скрипт не должен быть виден</script> а это должно
)
oHTML := ComObjCreate("HtmlFile")
oHTML.write(text)
msgbox % oHTML.documentElement.innerText
document := ComObjCreate("HTMLfile")
document.Open()
document.Close()
document.body.innerHTML := text
msgbox % document.body.innerText
Спасибо, всё работает.
У меня одинаково верный результат в обоих случаях.
У меня в первом варианте выводит "скрипт не должен быть виден а это должно".
Во втором же - " а это должно".
Какая у вас полная версия IE?
Встроенная восьмая, интересно какая конкретно из подключенных библиотек влияет:
ieframe.dll
mshtml.dll
winhttp.dll
urlmon.dll
jscript.dll
webio.dll
wininet.dll
Думаю mshtml.dll.
У меня он 11.00.9600.18978.
У меня восьмой соответсвенно.
Оказалось что в .documentElement попадает еще и содержимое тега <title>, так что ваш способ корректнее.
Всё-таки в данном случае правильней, наверное, так:
text =
(
<title>test</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
<div>div</div>
<script>скрипт не должен быть виден</script> а это должно
)
oHTML := ComObjCreate("HtmlFile")
oHTML.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=8"">") ; не смотря на значения в реестре или хтмл файле, будет работать в режиме совместимости IE8
oHTML.write(text)
msgbox % oHTML.documentmode
msgbox % oHTML.body.innerText
Так как при режиме совместимости 9 и выше цепляется текст внутри тага script:
text =
(
<title>test</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
<div>div</div>
<script>скрипт не должен быть виден</script> а это должно
)
oHTML := ComObjCreate("HtmlFile")
oHTML.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
oHTML.write(text)
msgbox % oHTML.documentmode
msgbox % oHTML.body.innerText
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться