Bit*_*han 5 python opera selenium web-scraping
歌剧浏览器具有内置的VPN,可让您在浏览时隐藏IP。我的问题是在将OperaDriver与python中的硒一起使用时能否打开VPN?
尝试和问题的详细说明:
我有这个脚本,可以去网站显示我的IP地址。
from selenium import webdriver
from selenium.webdriver.opera.options import Options
from time import sleep
driver = webdriver.Opera(executable_path=r'/path/to/operadriver')
driver.get('https://whatismyipaddress.com')
sleep(10)
driver.quit()
Run Code Online (Sandbox Code Playgroud)
当我在启用了VPN的Opera浏览器上访问此站点时,我的IP被屏蔽,并显示一些其他IP地址。但是我的脚本打开了浏览器以显示我的真实IP地址。
我已经在SO以及其他站点上搜索了OperaDriver上的几乎所有问题。似乎绝对没有文档或任何与此相关的其他问题。
我最接近的是github上的此功能请求。OP表示,他可以通过使用OperaOptions加载自定义配置文件来使其工作。链接中发布的代码是
OperaOptions operaOptions = new OperaOptions();
operaOptions.addArguments("user-data-dir", "~/Library/Application Support/com.operasoftware.Opera");
driver = new OperaDriver(operaOptions);
Run Code Online (Sandbox Code Playgroud)
我试图在python中执行此操作,但没有任何结果。如果有任何问题,我可以使用Ubuntu 16.04,并且OperaDriver是从官方github页面下载的。Python版本为,3.6.7而Opera版本57.0.3098.116为Ubuntu 16.04 LTS (x86_64; Unity)。
Dan*_*Dev 10
您正在尝试使用 OperaOptions 而不是 ChromeOptions,来自https://seleniumhq.github.io/selenium/docs/api/py/webdriver_opera/selenium.webdriver.opera.webdriver.html
选项:这需要一个 ChromeOptions 的实例
正如卡卡所说
“从 GUI 启用 VPN,设置已保存在活动配置文件中。”
from selenium import webdriver
from time import sleep
# The profile where I enabled the VPN previously using the GUI.
opera_profile = '/home/dan/.config/opera'
options = webdriver.ChromeOptions()
options.add_argument('user-data-dir=' + opera_profile)
driver = webdriver.Opera(options=options)
driver.get('https://whatismyipaddress.com')
sleep(10)
driver.quit()
Run Code Online (Sandbox Code Playgroud)
结果:
First try
IPv6: 2001:67c:2660:425:2:0:0:3f8
IPv4: 77.111.247.26
Second try
IPv6: 2001:67c:2660:425:1a:0:0:1a0
IPv4: 77.111.247.66
Third try
IPv4: 77.111.247.133
IPv6: Not detected
Forth try
IPv6: 2001:67c:2660:425:1c:0:0:1fe
IPv4: 77.111.247.68
Run Code Online (Sandbox Code Playgroud)
其中没有一个是我的 IP,VPN 图标显示在地址栏旁边。
更新以回答问题。
来自https://techdows.com/2016/08/opera-profile-location.html
了解 Opera 配置文件路径的简单方法是在地址栏中输入 about://about 并检查路径下的配置文件行。
在 Windows 10 上,代码如下所示。
from selenium import webdriver
from time import sleep
# The profile where I enabled the VPN previously using the GUI.
opera_profile = r'C:\\Users\\dan\\AppData\\Roaming\\Opera Software\\Opera Stable'
options = webdriver.ChromeOptions()
options.add_argument('user-data-dir=' + opera_profile)
options._binary_location = r'C:\\Users\\dan\\AppData\\Local\\Programs\Opera\\58.0.3135.114\\opera.exe'
driver = webdriver.Opera(executable_path=r'C:\\operadriver_win64\\operadriver.exe',options=options)
driver.get('https://whatismyipaddress.com')
sleep(10)
driver.quit()
Run Code Online (Sandbox Code Playgroud)