Используя VBA, могу ли я использовать прокси для создания веб-страниц с помощью Inte rnet Explorer? - PullRequest
0 голосов
/ 16 февраля 2020

Я искал ответ на этот вопрос. Это то, что, как мне кажется, должно быть легко сделано, но такие интуиции редко бывают правильными ...

Я использую VBA и Inte rnet Explorer для просмотра веб-страниц.

Dim ie As New InternetExplorer
For Each link In URLs
    ie.Navigate, 16386
    Do: DoEvents: Loop Until ie.readyState = 4

Set Doc = ie.document

Затем я использую операнды, такие как «getelementsbyclassname», et c, для извлечения данных из документа HTML. Я не знаю, является ли это лучшим методом, но он работает и легко для меня. (Я возился с использованием XML запросов, но обнаружил, что я часто не получал правильный ответ с веб-сайта.)

Поскольку меня сейчас часто блокируют как «бота», я бы хотел попробуйте использовать случайные прокси из списка. Я знаю, что с некоторыми объектами это легко с помощью метода .setproxy, но я не могу понять, как это сделать, используя ie.

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете обратиться к этой статье о настройке IP-адреса прокси с помощью VBA. Метод состоит в том, чтобы отредактировать реестр.

Сначала сохраните следующий код в виде setIP.vbs файла и поместите его в какой-нибудь удобный для вас путь:

Option Explicit
Dim valUserIn
Dim objShell, RegLocate, RegLocate1
Dim args

set args = Wscript.Arguments
valUserIn = args(0)
Set objShell = WScript.CreateObject("WScript.Shell")
On Error Resume Next
RegLocate = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer"
objShell.RegWrite RegLocate,valUserIn,"REG_SZ"
RegLocate = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable"
objShell.RegWrite RegLocate,"1","REG_DWORD"
WScript.Quit

Во-вторых, выполните этот сценарий непосредственно из VBA и передайте аргумент IP (обратите внимание, чтобы изменить IP-адрес и путь к файлу на ваш собственный):

Sub IPproxy()

'give the proxy server IP address
ipAddress = "xxx.xxx.xxx.xxx"

'Call the vbs script to set the new IP address
Shell "wscript the\path\of\your\file\setIP.vbs " & ipAddress, vbNormalFocus

End Sub

После этого при перезапуске IE вы можно увидеть, что прокси-сервер был установлен. Вы можете проверить этот параметр, чтобы увидеть эффект: Сервис-> Inte rnet Параметры-> Подключения-> Настройки LAN-> Использовать прокси-сервер для вашей локальной сети .

...