Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Как загрузить динамически подгружаемую страницу


Автор: suvorr 6.11.2013, 23:57
Хочу загрузить из сети динамически подгружаемую страницу типа         URL#page2  

Код

a = URLDownloadToFile(0, "URL#page2", "fn", 0, 0):  


не работает.. Грузит первую страницу игнорируя якорь..
Как бы сделать.. Может другую API юзать или контрол какой.. Спасибо..

Автор: Akina 7.11.2013, 07:48
Цитата(suvorr @  7.11.2013,  00:57 Найти цитируемый пост)
 Грузит первую страницу игнорируя якорь..

Интересно, а что ты ожидаешь от якоря?
Как ты себе представляешь его НЕигнорирование?

PS. И где тут динамически подгружаемая страница?

Автор: suvorr 7.11.2013, 10:39
"Как ты себе представляешь его НЕигнорирование?"
- Ну, браузер-то как-то загружает именно 2-ю.. Почему бы и некоторому контролу не отдавать мне именно ее же.. или хотя бы ее "содержание" так как его браузер получает..

"PS. И где тут динамически подгружаемая страница?"
- Я, в общем, чайник в этом деле.. Однако как я понимаю, тут не просто якорь, на зараз полностью загружаемой странице (да точно нет), а именно таки динамически подгружаемая.. То есть при получении этого запроса сервер отвечает не html-кодом 2-й страницы, а какой-то фигней используя которую скрипт уже на стороне клиента модифицирует "шаблон" во 2-ю  страницу.. Чего уж "динамичнее"..

Автор: Akina 7.11.2013, 10:54
suvorr, ты уж не поленись почитать, что такое якорь, а? 
И что такое метка внутри веб-страницы...

Автор: suvorr 7.11.2013, 11:38
"suvorr, ты уж не поленись почитать, что такое якорь, а? "
- Слово произнесенное есть ложь.. Я в обчем-то писал для тех кто поймет о чем спрашивают.. Тем паче что в старт-посте есть слова "динамически подгружаемая"..

Автор: Akina 7.11.2013, 11:49
suvorr, тег А - это элемент HTML-разметки. то, что ты продемонстрировал кодом, никакого отношения к этому тегу не имеет. Если ты хотел сказать, что ссылку (адрес), которую ты пытаешься этим кодом открыть, ты вытянул из тега А какой-то страницы - то у тебя это не получилось. К тому же нет никакой связи между источником адреса и попыткой получить контент по этому адресу. А #page2 - это не якорь, а метка внутри страницы URL.

Сдаётся мне, что спросить ты хотел одно, а спросил абсолютно другое.

Автор: suvorr 7.11.2013, 13:26
1. якорь -
идентификатор «якоря», ссылающегося на некоторую часть (раздел) открываемого документа. С развитием AJAX в этой части стали размещать параметры для JavaScript на странице, и страница в зависимости от указанного якоря может в браузере выглядеть по-разному. 
(http://ru.wikipedia.org/wiki/Url)

2. Хорошо, хорошо.. я спросил не хорошо.. Ну, вот, конкретный пример подобной страницы- 
http://news.mail.ru/politics/15527700/comments/#page2
Не знаю как там это надо называть - якорь, не якорь, метка, не метка.. Но как мне из VB получить именно вторую страницу а не первую!?...

Автор: Akina 7.11.2013, 13:56
suvorr
Читать надо оригиналы, а не безграмотные переводы! В стандарте, который описывает URL, то, что какой-то идиот в вики перевёл как "якорь", называется fragment_id. Идентификатор фрагмента. В грамотных переводах на русский язык - метка.

А якорь (англ. Anchor) - это тег <A ...> в языке HTML-разметки.

Добавлено через 5 минут и 19 секунд
Цитата(suvorr @  7.11.2013,  14:26 Найти цитируемый пост)
как мне из VB получить именно вторую страницу а не первую!?... 

Загрузить полученный URL в неотображаемый контрол веб-браузера и разбирать полученную страницу. А поскольку формируемая там веб-страница формируется скриптом, а не статическим HTML-текстом, то работать надо не и текстом страницы, а с соответствующим DOMDocument2.

PS. Мои соболезнования...

Автор: suvorr 7.11.2013, 14:27
"Загрузить полученный URL в неотображаемый контрол веб-браузера .."
- Очень информативно..  Так и я и спрашиваю, какой контрол юзать! Открываю я окно "components" в VB и что?.. Кого подключать?..  И есть ли кого подключать.. Вот моя Опера это вообще не тянет.. А IE 8 тянет.. А какие там у этого осла контролы..

Автор: Akina 7.11.2013, 14:42
Не поверишь, но он именно так и называется - WebBrowser Control.

Автор: suvorr 7.11.2013, 15:21
Во-первых, в списке контролов он называется Microsoft Internet Controls..
Во-вторых, при попытке подключения получаю  "File not found  ...system32/ieframe.dll\1"    хотя ieframe.dll  там есть.. и что бы это значило?..

Автор: Akina 7.11.2013, 15:27
Обычно емнип это означает повреждение регистрации контрола при обновленнии версии либо при апдейте. И, насколько я помню. эта проблема обсуждалась не раз, и решение её должно быть - если не на нашем форуме, то где-нить на хоботе точно сыщется.

Автор: suvorr 7.11.2013, 17:07
Так.. контролчик я поправил и он показавает что надо.. Уже спасибо!.. (где-то вроде какая-то раньше кнопка спасиба была?..)
А теперь - что это DOMDocument2..  DOM2 это что-то вроде из телевизора smile   Неужто из этого WebBrowser-а как-нить код страницы не достать!?..  Там вроде есть атрибут ...Document   но я не понял как его увидеть..

Автор: suvorr 7.11.2013, 18:51
Усе.. сделал.. Thanks..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)