1 (изменено: seriyforum, 2018-07-13 02:27:24)

Тема: AHK: Парсинг страницы

решено

2

Re: AHK: Парсинг страницы

Исходный код страницы находится в переменной WebRequest.ResponseText.
Посылаете get запрос по нужной вам ссылке и должны получить.

3

Re: AHK: Парсинг страницы

Как это сделать?

4

Re: AHK: Парсинг страницы

Вы в своем коде зачем-то вначале отправляете 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)

5

Re: AHK: Парсинг страницы

Я переделывал код под себя,  взяв его на просторах данного форума)

6

Re: AHK: Парсинг страницы

Get отправляем, чтобы получить информацию.
Post, чтобы отправить.

7

Re: AHK: Парсинг страницы

Спасибо получилось, но немного не так как я хотел, он копирует код страницы со всеми элементами.
Можно но ли как-то из этого получить простой текст, который отображается на сайте без лишнего html и java кода

8 (изменено: stealzy, 2018-04-27 00:09:37)

Re: AHK: Парсинг страницы

Такая тема уже была, пользуйтесь поиском: http://forum.script-coding.com/viewtopic.php?id=9394.

9

Re: AHK: Парсинг страницы

seriyforum пишет:

Можно но ли как-то из этого получить простой текст, который отображается на сайте без лишнего html и java кода

Можно через HTMLfile:

document := ComObjCreate("HTMLfile")
document.Open()
document.Close()
document.body.innerHTML := WebRequest.ResponseText
msgbox % document.body.innerText

10 (изменено: Malcev, 2018-04-26 13:38:57)

Re: AHK: Парсинг страницы

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

11

Re: AHK: Парсинг страницы

Спасибо, всё работает.

12

Re: AHK: Парсинг страницы

stealzy пишет:

У меня одинаково верный результат в обоих случаях.

У меня в первом варианте выводит "скрипт не должен быть виден а это должно".
Во втором же - " а это должно".
Какая у вас полная версия IE?

13

Re: AHK: Парсинг страницы

Встроенная восьмая, интересно какая конкретно из подключенных библиотек влияет:

ieframe.dll
mshtml.dll
winhttp.dll
urlmon.dll
jscript.dll
webio.dll
wininet.dll

14 (изменено: Malcev, 2018-04-26 21:46:51)

Re: AHK: Парсинг страницы

Думаю mshtml.dll.
У меня он 11.00.9600.18978.

15

Re: AHK: Парсинг страницы

У меня восьмой соответсвенно.
Оказалось что в .documentElement попадает еще и содержимое тега <title>, так что ваш способ корректнее.

16 (изменено: Malcev, 2018-05-09 02:52:34)

Re: AHK: Парсинг страницы

Всё-таки в данном случае правильней, наверное, так:

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