|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Уважаемые форумчане! Пытаюсь получить с сайта http://kad.arbitr.ru выборку дел по определенным датам. Сама выборка загружается скриптом jQuery на текущей странице (после того, как выбран период выборки и нажата кнопка "Найти"). После формирования выборки в коде HTML страницы тегов с результатами нет, НО их видно в DOMе. Почитал в инете по данному вопросу и сделал вывод, что нужно отправить на сайт XMLHTTPREQUEST запрос методом POST (в котором указать период выборки), получить результат в формате XML, а потом его распарсить. 1) Правильно ли я понимаю, что таким способом можно получить инфу из DOM документа страницы? 2) Как правильно написать запрос XMLHTTPREQUEST на VBA, чтобы получить результат запроса, а не пустую строку (т.е. каким должен быть синтаксис запроса, что писать в setRequestHeader и т.п.)? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2015, 14:24 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Как-то так... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2015, 00:11 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
MrVoid, спасибо за ответ. Только как я понимаю, данный запрос просто скачивает исходный html код страницы, а мне нужно сначала послать данные на сервер (указать период выборки), а потом получить результат выборки (поэтому я и предполагаю, что запрос д.быть методом POST). Я бы не заморачивался c xmlhttprequest, если бы мог распарсить html код страницы с результатами выборки, но на ней информации нет, ее видно только в DOMе. Поэтому и хочу попробовать через xmlhttprequest. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 10:59 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
araz, Вы умеете пользоваться отладчиком браузера? Там на самом деле нужные вам данные не возвращаются в DOM. Сайт делает запрос, ответ возвращается в виде JSON. Зайдите в отладчик, в "сеть" и увидите, какой запрос отправляет сайт и какой ответ получает. Останется сымитировать этот запрос и разобрать JSON ответа ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 11:24 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Честно говоря, ни разу не пользовался. Буду признателен, если подскажете, как. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 16:33 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Какой браузер? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 17:27 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, IE Только что нашел отладчик Запрос отправляется методом POST посредством XMLHTTP. Вижу заголовок и текст запроса. Текст запроса: {"Page":1,"Count":25,"Courts":[],"DateFrom":"2015-01-01T00:00:00","DateTo":"2015-01-01T23:59:59","Sides":[],"Judges":[],"CaseNumbers":[],"WithVKSInstances":false} Получается, для имитации запроса мне нужно сначала написать что-то в заголовок запроса (Setrequestheader), а потом текст запроса - и все это взять из отладчика. Cинтаксис запроса я знаю, не понятно, что конкретно писать в заголовках и тексте запроса (т.е. как переложить записи отладчика в текст кода VBA). Сможете помочь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 17:47 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
дык все заголовки можно тоже из отладчика взять. На самом деле, все довольно стандартно, ты можешь прям здесь на форуме поискать примеры по слову POST и/или XMLHTTP ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 17:51 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Ок, спасибо, буду искать) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 18:07 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Попробовал сымитировать XMLHTTP запрос на основании записей отладчика (сымитировал заголовки и текст запроса). В итоге получаю текст "Ведутся технические работы". Ответ сервера, который выдает отладчик IE, имеет вид: Код: javascript 1.
Прошу подсказать, что неправильно написал в коде (привожу ниже) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:20 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
1) Попробуйте открыть браузер лучше даже, наверное, в режиме "инкогнито" или вычистить предварительно все куки, относящиеся к этому сайту и через отладчик сымитировать этот post-запрос (без предварительного захода на страницу). Возможно, существует какая-то защита на стороне сервера, чтобы нельзя (или трудно) было бы сделать запрос минуя саму страницу сайта. 1а) Проверьте куки, отправляемые браузером. Возможно, они разные, возможно они идентифицируют сессию, возможно содержат защитный токен. (см. свой xmlhttp.SetRequestHeader "Cookie") 2) Каким-нить внешним сниффером (не посоветую что-то конкретное) сравните обмен данными с сервером из браузера и с помощью вашей программы. Возможно, вы что-нибудь упустили. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:46 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 18:02 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Я видимо понял, в чем дело: в заголовке запроса я пишу Код: vbnet 1.
при этом сам запрос явно не json: Код: vbnet 1.
Не подскажете, в каком направлении дальше двигаться: 1) искать, какую кодировку указать в заголовке и как закодировать текст запроса 2) попробовать (если это возможно) написать сам текст запроса (то, что внутри PostData) на json ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 13:53 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Но ведь вы брали заголовки запроса из трассировщика? Зачем что-то пытаться менять, надо максимально воспроизвести исходник? Три моих совета вы пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 14:11 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Я попробовал Ваши варианты, также посмотрел, что выдает трассировщик chrome- все то же самое. Дело в том, что текст запроса трассировщика выглядит следующим образом Код: javascript 1.
а мой запрос выглядит так: Код: vbnet 1.
Как по-другому написать запрос, я пока не знаю. Если отправлять пустой запрос Код: vbnet 1.
текс ответа такой: Код: javascript 1.
Из всего этого я сделал вывод, что дело именно в написании текста запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 14:47 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Скрин заголовков запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 14:49 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
arazчто текст запроса трассировщика выглядит следующим образомarazа мой запрос выглядит так:ваша задача воспроизвести этот запрос, или я чего-то не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 15:04 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Может я задаю глупые вопросы, т.к. в программировании я пока новичок Браузер посылает запрос в формате json, что видно из скрина, а я пишу запрос на visual basic, т.е. я должен написать запрос, понятный visual basic. Я пробовал писать: Код: vbnet 1.
т.е. 100% повторить текст запроса, но редактор VBA ругается на синтаксис. Убедительно прошу помочь разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 15:49 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
arazругается на синтаксис.ну так тогда надо с синтаксисом разбираться, а не задачу извращать ))) Если хотите использовать кавычки внутри текстового литерала, их нужно задваивать ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 17:15 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
arazно редактор VBA ругается на синтаксис. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2015, 17:26 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо за помощь, все получилось!!! Остался последний нерешенный вопрос: Результат возвращается в формате json, есть ли способ его преобразовать(или сохранить в нужном формате), чтобы можно было потом разобрать методом GetElementsByTagName или Queryselector ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 17:46 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 17:53 |
|
XMLHTTPREQUEST как правильно написать запрос на VBA
|
|||
---|---|---|---|
#18+
Shocker.Pro, Еще раз спасибо за помощь!!!! Ссылка рабочая, распарсил свой json Тему можно закрывать ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2015, 09:48 |
|
|
start [/forum/topic.php?fid=60&msg=39026090&tid=2155815]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 137ms |
0 / 0 |