Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 00:20:34

Войти
Добавляйтесь в нашу группу ВКонтакте - будьте в курсе всех новых событий сайта, узнавайте первым обо всех акциях и новых статьях!
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Как открыть макросом VBA страницу Просмотра кода страницы в Браузере ?
Страниц: [1]   Вниз
Печать
Автор Тема: Как открыть макросом VBA страницу Просмотра кода страницы в Браузере ?  (Прочитано 15798 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Genri
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля
« : 10.03.2017, 03:49:53 »

Как автоматизировать процесс открытия Просмотра кода страницы сайта? В ручную сначала захожу по ссылке на сайт, потом правой клавишей и на Просмотр кода страницы, или Ctrl+U. А вот как запустить это из макроса экселя, чтобы сразу открывалась страница кода?

Пробовал через X = Shell("""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""" & ActiveCell.Value, vbNormalNoFocus)
Но ссылка на в виде "view-source:https://...." Shell не открывает.  Непонимающий  В замешательстве

Подскажите, пожалуйста, как можно открыть макросом vba ссылки в виде "view-source:https://...." ?
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #1 : 10.03.2017, 08:58:16 »

Расскажите лучше для чего это. Если хотите получить HTML-код страницы для дальнейшего чтения кодом VBA, то можно без этих танцев с бубном. Код будет примерно такой:
Код: (vb)
With CreateObject("Microsoft.XMLHTTP")
        .Open "GET", "адрес страницы", "False"
        .send
        If .statustext = "OK" Then
            s = .responsetext 'это и есть HTML-код страницы
            'дальше работает с переменной s
        End If
End With
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Genri
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля
« Ответ #2 : 10.03.2017, 14:56:49 »

The_Prist, Ваш макрос у меня почему-то не запускается. Комп просто пиликает и больше ничего не происходит.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #3 : 10.03.2017, 15:07:45 »

Давайте так: для начал Вы напишите, что надо и каков Ваш уровень познаний в VBA. Судя по последнему сообщению уровень стремится к нулю Улыбка Без обид.
Мой код - это лишь та часть, которая должна получать исходный код указанной страницы в переменную. Покажите полный код, который у Вас "пиликает" и опишите, что Вам вообще надо получить от кода.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Genri
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля
« Ответ #4 : 10.03.2017, 15:19:10 »

The_Prist, какие тут обиды?  Улыбка Я не много понимаю в макросах, и есть куда расти. Возникла задача извлечь данные с кода страницы сайта. В ручную это проделывалось так:  Открываем сайт, нажимаем Ctrl+U, далее Ctrl+A, Ctrl+С, переходим на лист Екселя, выделяем все ячейки листа, вставляем через Конечное форматирование. Потом уже извлекались данные путем поиска и отсекания лишнего. Вот то, что проделывалось в ручную, я через циклы и Shell и SendKeys автоматизировал макросом. Но Shell не открывает сразу код или то, что в ручную открывается с заходом сначала на сайт, а потом Ctrl+U. Понимаю, что есть другой, более эффективный, путь извлечения и обработки данных, но пока я дорос только до этого.
 А как можно это все сделать по-другому?  Непонимающий
« Последнее редактирование: 10.03.2017, 15:42:27 от Genri » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #5 : 10.03.2017, 15:51:34 »

Ну...все это делать за Вас ни малейшего желания, притом что адреса сайта и чего оттуда брать тоже понимания нет. А другим методом, кроме как все написать с нуля, не особо-то и покажешь, как это можно сделать. Выше попытался - но Ваших знаний маловато для освоения именно на том куске.
Посмотрите примеры моих статей, где аналогичные ситуации обрабатываются, может это поможет:
Получить курс валют от ЦБР - наиболее приближенная к Вашей ситуация. Там тоже в первом коде выдергивается исходный текст, а потом при помощи Instr и Mid отбирается нужный кусок.
Перевод текста в ячейках через Google - чуть посложнее в понимании, т.к. есть доп.куски по преобразованию данных. Но основная суть та же.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Genri
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля
« Ответ #6 : 10.03.2017, 16:14:45 »

Спасибо, буду разбираться. На это потребуется время. Можете подсказать, как же все-таки в браузере открывается ссылка на сайт, где впереди стоит view-source: "view-source:http://www.excel-vba.ru/forum/index.php?topic=5061.new;topicseen#new" ? С помощью какой функции?
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #7 : 10.03.2017, 16:24:52 »

Это вшито в браузеры. VBA к этому не имеет отношение. Надо смотреть для каждого браузера отдельно, т.к. технология одна: браузером просто генерируется отдельная страницы, в которую загоняется исходный текст. Но каждый браузер может делать это по-разному. Где-то с помощью гор.клавиш можно, где-то может с помощью командной строки. Но самый оптимальный способ делать это из VBA как как я показал выше.
По сути можно еще сначала считать текст, записать его в текстовый файл с расширением .html и уже Shell-ом открыть в программе по-умолчанию, т.е. в браузере.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Genri
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля
« Ответ #8 : 10.03.2017, 17:33:59 »

 "view-source:http://www.excel-vba.ru/forum/index.php?topic=5061.new;topicseen#new" открылась только в Яндекс-браузере.
"view-source:http://www.excel-vba.ru/forum/index.php?topic=5061.new;topicseen#new.html" открылась в Яндексе и Гул Хроме  Улыбка
Explorer послал меня в Магазин.

The_Prist, спасибо! Золотой Вы человек!
Записан
Genri
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля
« Ответ #9 : 10.03.2017, 18:17:52 »

Странно. В браузере ссылка в виде "view-source:http://www.excel-vba.ru/forum/index.php?topic=5061.new;topicseen#new.html" открывает код. А Shell нет...

Cells(1, 45).Activate  'активировали ячейку с сылкой
X = Shell("""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""" & ActiveCell.Value, vbNormalNoFocus)

Что нужно изменить, чтобы открывалась ссылка?
Записан
Genri
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля
« Ответ #10 : 19.05.2017, 19:20:52 »

Как значение переменной S перенести на лист Екселя и Блокнота? Пробую записать Cells(1,1)=s , но ничего не выходит. Подскажите, пожалуйста.
Записан
kuklp
Старожил
****

Репутация: +32/-0
Офлайн Офлайн

Сообщений: 438

4190413
Просмотр профиля E-mail
« Ответ #11 : 20.05.2017, 14:17:11 »

лист Екселя и Блокнота
- а что это такое? Дружище, Вам бы начать с чего-нить попроще. Эксель "для чайников" почитать, например. Ну и форум тоже читать не мешает.
Записан

kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Андрей Васильевич
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 1


Просмотр профиля E-mail
« Ответ #12 : 01.11.2019, 16:30:42 »

Здравствуйте. Прошу помощи специалистов.
Опыт работы с VBA – практически на двойку.
Не могу справиться с одной своей задачей. Возможно, она вообще не решается ?
В excel в ячейке «N3» содержится адрес интернет-ссылки
https://www.avito.ru/balashiha/kvartiry/2-k_kvartira_58_m_33_et._1842201354
Это ссылка на объявление на Авито. (Это просто пример, по возможности, не утомите автора странички)
Моя задача – запустив макрос, средствами VBA автоматизировать отсылку моего сообщения (текст в другой ячейке)  автору объявления N3.
Саму страница я успешно открываю в Chrome макросом (М):

Dim cell As Range, ra As Range: Application.ScreenUpdating = False
     Set ra = Range(Join(Array("n" & 3)), Join(Array("n" & 3)))
     i = 0: On Error Resume Next
    For Each cell In ra.Cells
        ThisWorkbook.FollowHyperlink cell
        i = i + 1: If i Mod 35 = 0 Then Stop
Next cell

Но мне нужно открыть макросом не саму эту страницу, а следующую, которая открывается, если на стр объявления в браузере руками нажать «Написать сообщение», где есть поле для ввода текста сообщения. 
При этом я отмечаю, что при попадании на эту страницу адрес ссылки в браузере изменяется по легко понятной закономерности. Из адреса кое-что пропадает и добавляется «-7861409»
Например,
https://www.avito.ru/balashiha/kvartiry/2-k_kvartira_58_m_33_et._1842201354 превращается в
https://www.avito.ru/profile/messenger/channel/u2i-1842201354-7861409
https://www.avito.ru/balashiha/kvartiry/1-k_kvartira_43_m_1017_et._1846248611 превращается в
https://www.avito.ru/profile/messenger/channel/u2i-1846248611-7861409

Но если я вышеуказанным макросом открываю адрес вида «….-7861409», то страница не открывается.
Причём, что интересно….  Если я со стр.1 сначала в ручном режиме нажимаю  «Написать сообщение», то потом, даже закрыв браузер, после запуска макроса  (М) для ссылки «-7861409» страница ввода сообщения открывается полностью, как положено.
Вопрос. Как мне добиться, чтобы при открытии макросом (М) ссылки вида «….-7861409», она открывалась полностью ?
Возможно ли автоматизировать процесс, чтобы не только открывалась страница с возможностью ввода сообщения, но текст сообщения сразу бы вставлялся в окно сообщения, и, в идеале, и отправлялся бы, без нажатия кнопки «Отправить».
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #13 : 01.11.2019, 16:38:02 »

Андрей Васильевич, для реализации подобного нужны очень приличные знания не только VBA, но и работы сайтов. Потому что в Авито не дураки сидят и там реализованы различные проверки и блоки для защиты от автоматизированной отсылки сообщений. Обходить такое очень сложно. Если бы это было на уровне даже "хороший программист", то всех пользователей Авито давно бы уже спам рассылки одолели.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru