好的,所以我的目标是通过代理连接到https网站,需要身份验证而无需任何人工干预.
解决方案#1:Firefox
fp = webdriver.FirefoxProfile() fp.set_preference("network.proxy.type",1) fp.set_preference("network.proxy.http","IP") fp.set_preference("network.proxy.http_port",PORT) driver = webdriver.Firefox(firefox_profile=fp) driver.get("http://www.google.com")
问题:浏览器打开后,会打开用户名和密码的auth弹出窗口.
alert = driver.switch_to_alert() alert.send_keys('balbla')
不起作用,根本没有回应.
更改代理也没有运气
http://username:password@ip
解决方案#2:PhantomJs
使用phantomjs我设法在代码中进行身份验证:
service_args = [ '--proxy=https://IP:PORT','--proxy-type=http','--proxy-auth=USERNAME:PASSWORD',] br = webdriver.PhantomJS(PATH,service_args=service_args) br.get('https://www.google.com/')
问题:我不能浏览任何https网站,例如我正在尝试进入https://www.gmail.com,我得到空页.
代理正在使用https肯定(手动加倍检查).
加入
'--ssl-protocol=any'
不行.
我在Linux环境下使用selenium和python.寻找任何可以帮助我解决问题的解决方案.
谢谢你的头.
解决方法
我想这有点晚了:) – 但基本上从代理中删除https并将代理类型设置为https:
service_args = [ '--proxy=IP:PORT','--proxy-type=https',]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。