Создание веб-страниц в Excel vba, в любом случае, для ускорения процесса?

#excel #vba #web-scraping

#excel #vba #очистка веб-страниц

Вопрос:

Я работаю над веб-шаблоном в VBA Excel.

Из-за механики веб-сайта, который я очищаю, я должен выполнять это через Excel, поскольку веб-сайт является правительственной платформой, которая проверяет через файл, расположенный на авторизованном компьютере из Internet Explorer, обычно я бы использовал python или parsehub, но вот мы здесь.

Проблема, с которой я столкнулся, заключается в том, что я очищаю приблизительно 6600 уникальных страниц (все отформатированные точно так же), и в настоящее время загрузка каждой страницы занимает от 3 до 5 секунд, что приводит к тому, что макрос должен выполняться от 6 до 9 часов.

Мой вопрос касается механики, учитывая, что я ограничен в скорости загрузки веб-страницы, было бы возможно или осуществимо запустить процесс для нескольких ссылок одновременно, вместо того, чтобы открывать по одной, открывать, скажем, 10 за раз? Или гораздо более вероятно, что горлышко бутылки — это мое подключение к Интернету, а не скорость IE?

Просто мозговой штурм здесь.

Комментарии:

1. Вы искали здесь — много сообщений о веб-обработке vba…

2. Если вы хотите работать быстрее, посмотрите, как использовать XmlHttpRequest (надеюсь, ваш веб-сайт позволяет отправлять подобные запросы). Если вам нужно придерживаться роботизированной очистки, то вы можете, например, создать 6 экземпляров (вместо 1) InternetExplorer.Application и передавать страницы 1-999 первому, 1000-1999 второму и т.д. — учтите, что VBA — это однопоточный процесс, вы не сможете запускать параллельно 6 InternetExplorer с использованием одного и того же макроса, поэтому вам нужно будет иметь 6 экземпляров Excel, каждый из которых запускает один и тот же макрос на разных страницах.

3. Маттео, это интересная идея! Итак, я мог бы объединить несколько экземпляров Excel, используя стандартный vba, например: Sub OpenNewExcelInstance(), затемнить xlApp как Excel. Набор приложений xlApp = Новый Excel. Приложение xlApp.Workbooks. Добавить xlApp.Visible = True Установить xlApp = Ничего в конце Sub

Ответ №1:

Вы можете использовать Selenium Basic, чтобы управлять Google Chrome, а с помощью selenium или IE VBA вы можете запускать множественные экземпляры и запускать скрипты Javascript синхронно.

Я думаю, что лучший способ — это тоже использовать HttpRequest, если страницы не являются динамическими (которые меняются с помощью функций javascript)