|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
VBA: Можно ли средствами VBA вытащить текст любого произвольного сайта в формате html (т.е. достаточно в виде только текста)? Само собой разумеется, что для этого требуется как минимум свободный доступ к и-нету, а также существование (в рабочем состоянии) сайта. Предполагается следующее: Имеется поле, где указывается адрес сайта. При нажатии юзером кнопки VBA вытаскивает в виде текста сам сайт и сохранит как отдельный файл там же где проект VBA находится. При этом не требуется вытаскивание рисунков, звуков, фильмов и т.д. (так как эти объекты имеют достаточно "большой вес"). В и-нете порылся, нашёл "MSXML". Но как им пользоваться в VBA не умею. Может кто-нибудь знает примерчик? Какую-нибудь ссылочку? Заранее благодарю за любую помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 10:37 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Komil_, посмотрти здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 10:44 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
.Михаил., Спасибо за ссылку. Но насколько я понял, там речь идёт об экспорте данных. А мне нужно наоборот, импорт данных. Как это сделать? Что-то не получается у меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 11:51 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Посмотрите здесь, может подойдет Парсинг с авторизацией в https ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 12:01 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
mds_worldПосмотрите здесь, может подойдет Парсинг с авторизацией в https Ваш код кажется это то, что мне надо. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Попробовал. Вроде работает! Спасибо БОЛЬШОЕ!!!! А можно ещё один вопросик? У меня этот код сработал слегка медленно, видимо "WinHttp" пользуется средствами Internet Explorer. А можно ли каким то макаром заставить смотреть в сторону Firefox Mozilla/5.0? Мне кажется Firefox намного шустрее. Или я не угадал проблему скорости? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 12:26 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Странно, но возникла куда более серьёзная проблема. Оказывается "WinHttp" не со всех сайтов вытаскивает текст нормально. В некоторых случаях выходит подобная абракадабра: Код: plaintext 1. 2. 3.
Как бороться с этим? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 12:57 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
> Автор: Komil_ > Как бороться с этим? Научиттся работать с юникодом :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 13:05 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Игорь Горбонос > Автор: Komil_ > Как бороться с этим? Научиттся работать с юникодом :) Не могли бы помочь, как можно "WinHttp" познакомить с юникодом? Пытаюсь переключить на юникод, а он не в какую. Подозреваю, что у него нет такого свойства. Если это так, то очень, очень жаль. А мог быть идеальным решением для моего случая. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 13:14 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
WinHttp не должен и не занимается разбором кодировок. Его задача получить то, что отдает сервер. Что с этим делать дальше — проблема автора. А автор даже не сообщает, что он собирается делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 13:33 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
AntonariyWinHttp не должен и не занимается разбором кодировок. Его задача получить то, что отдает сервер. Что с этим делать дальше — проблема автора. А автор даже не сообщает, что он собирается делать. Как не сообщил что делать? Сохранить как отдельный файл. Можно простой текстовый файл. Т.е. Вы имеете ввиду если я сразу сохраню в файл, то там будет всё О.К.? Щас попробую._ ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 14:10 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Попробовал сразу сохранить в файл. Нет, не получился. Всё равно выходит абракадабра. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 14:17 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Komil_Странно, но возникла куда более серьёзная проблема. Оказывается "WinHttp" не со всех сайтов вытаскивает текст нормально. В некоторых случаях выходит подобная абракадабра: Код: plaintext 1. 2. 3.
Как бороться с этим? анализировать на <META content="text/html; charset=windows-1251" http-equiv="Content-Type"> --------------------------------------------------------------------utf-8 --------------------------------------------------------------------utf-16 ............ и соответственно обрабатывать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 14:22 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАKomil_Странно, но возникла куда более серьёзная проблема. Оказывается "WinHttp" не со всех сайтов вытаскивает текст нормально. В некоторых случаях выходит подобная абракадабра: Код: plaintext 1. 2. 3.
Как бороться с этим? анализировать на <META content="text/html; charset=windows-1251" http-equiv="Content-Type"> --------------------------------------------------------------------utf-8 --------------------------------------------------------------------utf-16 ............ и соответственно обрабатывать META тэга может и не быть ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 14:46 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА анализировать на <META content="text/html; charset=windows-1251" http-equiv="Content-Type"> --------------------------------------------------------------------utf-8 --------------------------------------------------------------------utf-16 ............ и соответственно обрабатывать Анализировать как? Что это? Куда мне вставить подобный текст? Я понимаю, что проблема в Unicode, но не понимаю как решить. P.S. сейчас мне необходимо отключиться из и-нета. я не смогу ответить до завтра. если не отвечу, то не сочтите за невежливость. заранее извиняюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 15:05 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Komil_, опять эти библиотеки чтобы не выделяло в строке Dim s As New WinHttp.WinHttpRequest Какую библиотеку надо подключить??? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 12:37 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Эндрю, а ты вообще сообщения читаешь? по ссылкам ходишь? с гуглем хоть немного дружишь? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 12:42 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Игорь Горбонос, Dim s As New WinHttp.WinHttpRequest 'библиотека Microsoft WinHTTP Services, version 5.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 12:44 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Ципихович Эндрю, 'Tool.References... Add a reference to Microsoft WinHTTPServices ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 12:45 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Жалко, что WinHTTP не дружит с UNICODE. Очень жаль. А так если сайт англоязычный, то вполне подойдёт. Но беда в том, что мне как назло именно русский текст и нужен. Ладно. Буду смотреть на сторону MSXML2. Надеюсь он менее капризный. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 13:45 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Komil_, потом выложите скрипт пожалуйста может Вам это нужно Текст_на_странице_WEB = IE.Document.body.innerText 'текст на WEB странице ???????? И если я не ршобаюсь этот скрипт не весь текст с страницы берёт в переменную, почему??? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 19:49 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
ршобаюсь это ошибаюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 19:49 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Komil_Попробовал сразу сохранить в файл. Нет, не получился. Всё равно выходит абракадабра.Попробуйте сохранять не в текстовый, а в .DOC-файл. Ворд умеет справляться с юникодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2010, 23:49 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Спасибо всем кто участвовал. Я в и-нете поковырял и нашёл одну процедурку (в каком сайте забыл, что-то вроде excelplaneta что ли, не помню). Вообщем видоизменил и получился что надо! По крайнем мере именно то, что мне надо! А код такой (если кому пригодится) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Автор процедуры специально использовал тип данных "Object" вместо подключения к библиотеке "MSXML2" (т.к. у конечного пользователя может и не быть такой библиотеки). Проверил, работает и без подключения библиотеки. Очень простой код, но рабочий. С unicode нет проблем! То, что предложил Михаил, в принципе примерно почти тоже самое, правда нужно было там слегка убрать лишнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 06:45 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Komil_ Автор процедуры специально использовал тип данных "Object" вместо подключения к библиотеке "MSXML2" (т.к. у конечного пользователя может и не быть такой библиотеки). Проверил, работает и без подключения библиотеки. Если у пользователя нет зарегестрированных в реестре данных библоитек, то использование функции CreateObject даст результат: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 08:30 |
|
Как вытащить средствами VBA текст html?
|
|||
---|---|---|---|
#18+
Komil_А код такой (если кому пригодится) После выполнения метода Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 08:39 |
|
|
start [/forum/topic.php?fid=60&msg=36946479&tid=2158418]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 347ms |
total: | 501ms |
0 / 0 |