powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение данных со скрипта вебстраницы
12 сообщений из 12, страница 1 из 1
Получение данных со скрипта вебстраницы
    #39001299
araz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Пишу парсер для сайта rusprofile. Возникла сложность на этапе перехода к странице организации
В перечне тегов данной страницы нет тега с URL страницы организации ("www.rusprofile.ru/id/4539245"), при этом в структуре DOM тег с таким содержанием отображается. Из всего перечисленного делаю вывод, что данный текст является результатом выполнения скрипта.

Вопрос: можно ли каким-либо образом обработать скрипт средствами VBA, чтобы в результате получить искомый URL?
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001309
araz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему-то не прикрепился адрес страницы.
Прикрепляю
http://www.rusprofile.ru/support/search.html?cx=partner-pub-2023889461799885:1217393034&cof=FORID:10&ie=UTF-8&q=7825045809
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001342
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001415
araz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Спасибо!!
Адрес я вставил свой, а что писать вместо "alert(document.forms.length)"

Код скрипта такой:
<script type="text/javascript" src=" http://www.google.ru/jsapi"></script>
<script type="text/javascript">
google.load('search', '1', {language : 'ru'});
function searchLoaded() {
var options = {};
options['adoptions'] = {'cseGoogleHosting': 'iframe'};
var customSearchControl = new google.search.CustomSearchControl(
"partner-pub-2023889461799885:1217393034"
, options);
customSearchControl.setRefinementStyle("link");
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
customSearchControl.setMoreAds();
var options = new google.search.DrawOptions();
options.setSearchFormRoot('cse-search-form');
customSearchControl.draw('cse', options);
historyManagement(customSearchControl);
}
function historyManagement(customSearchControl) {
if (customSearchControl.startHistoryManagement(init)) {
customSearchControl.setLinkTarget(
google.search.Search.LINK_TARGET_TOP);
}
}
function init(customSearchControl) {
var num = customSearchControl.getWebSearcher().getNumResultsPerPage();
customSearchControl.execute("7825045809");
}
google.setOnLoadCallback(searchLoaded, true);
</script>
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001528
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Debug.Print x.frames(0).document.querySelector(".gsc-table-result tbody tr td[2] div[1] a").href
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001529
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если результатов будет несколько:

For each a in x.frames(0).document.querySelectorAll(".gsc-table-result tbody tr td[2] div[1] a")
Debug.print a.href
Next
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001530
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyесли результатов будет несколько:

Код: vbnet
1.
2.
3.
For each a in x.frames(0).document.querySelectorAll(".gsc-table-result tbody tr td[2] div[1] a")
    Debug.print a.href
Next
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001539
araz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,
Еще раз спасибо за помощь, но все-равно не получается)

Public DocumentFactory As HTMLDocument

Public Function GetWebPage(ByVal strURL As String) As HTMLDocument
Set GetWebPage = DocumentFactory.createDocumentFromUrl(strURL, vbNullString)
Do Until GetWebPage.readyState = "complete"
DoEvents
Loop
End Function


Private Sub Form_Load()
Dim x As HTMLDocument
Set DocumentFactory = New HTMLDocument
Set x = GetWebPage(" http://www.rusprofile.ru/support/search.html?cx=partner-pub-2023889461799885:1217393034&cof=FORID:10&ie=UTF-8&q=7825045809")
Debug.Print x.frames(0).document.querySelector(".gsc-table-result tbody tr td[2] div[1] a").href - Пишет Object doesn't support this property or method
End Sub

Библиотека WinHTTP подключена
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001566
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
araz, учимся использовать тэги оформления кода - FAQ
Вам же отвечают с оформлением, а вы продолжает гнать простой текст, невежливо
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001575
araz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Прошу прощения, исправлюсь)
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001576
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Библиотека WinHTTP не нужна, нужна Microsoft HTML Object Library.

arazПишет Object doesn't support this property or methodсвойство frames какую-то дичь возвращает. ссылку на документ, а не коллекцию фреймов.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_Load()
Dim doc As HTMLDocument, iframe As HTMLDocument
Dim a As HTMLAnchorElement
    Set DocumentFactory = New HTMLDocument
    Set doc = GetWebPage("http://www.rusprofile.ru/support/search.html?cx=partner-pub-2023889461799885:1217393034&cof=FORID:10&ie=UTF-8&q=7825045809")
    'в результате работы скрипта фрейм создается, но его содержимое не загружается. 
    'нужно получить адрес, который он грузит, и запросить уже его через GetWebPage.
    Set iframe = GetWebPage(doc.querySelector("#cse-search-results iframe").src)
    Do  'глючит MSHTML. говорит, что complete, а ссылка еще не готова. c фреймом, считай, повезло.
        'будем долбить, пока не отдаст
        Set a = iframe.querySelector(".gsc-table-result tbody tr td div a")
        DoEvents
    Loop Until Not a Is Nothing
    MsgBox a.href
End Sub
...
Рейтинг: 0 / 0
Получение данных со скрипта вебстраницы
    #39001580
araz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Огромное Вам спасибо, все работает!!!))))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение данных со скрипта вебстраницы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]