[英]phantomjs + selenium in python proxy-auth not working
我正在尝试使用 selenium + phantomjs 为网页抓取设置代理。 我正在使用蟒蛇。
我在很多地方都看到 phantomjs 中存在一个错误,使得代理身份验证不起作用。
from selenium.webdriver.common.proxy import *
from selenium import webdriver
from selenium.webdriver.common.by import By
service_args = [
'--proxy=http://fr.proxymesh.com:31280',
'--proxy-auth=USER:PWD',
'--proxy-type=http',
]
driver = webdriver.PhantomJS(service_args=service_args)
driver.get("https://www.google.com")
print driver.page_source
代理网格建议使用以下代替:
page.customHeaders={'代理授权':'基本'+btoa('用户名:密码')};
但我不确定如何将其翻译成 python。
这是我目前拥有的:
from selenium import webdriver
import base64
from selenium.webdriver.common.proxy import *
from selenium import webdriver
from selenium.webdriver.common.by import By
service_args = [
'--proxy=http://fr.proxymesh.com:31280',
'--proxy-type=http',
]
headers = { 'Proxy-Authorization': 'Basic ' + base64.b64encode('USERNAME:PASSWORD')}
for key, value in enumerate(headers):
webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.{}'.format(key)] = value
driver = webdriver.PhantomJS(service_args=service_args)
driver.get("https://www.google.com")
print driver.page_source
但它不起作用。
关于如何让它发挥作用的任何建议?
我正在编译答案: 如何使用Selenium和phantomjs webdriver正确传递基本身份验证(每次点击)以及: base64.b64encode错误
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import base64
service_args = [
'--proxy=http://fr.proxymesh.com:31280',
'--proxy-type=http',
]
authentication_token = "Basic " + base64.b64encode(b'username:password')
capa = DesiredCapabilities.PHANTOMJS
capa['phantomjs.page.customHeaders.Proxy-Authorization'] = authentication_token
driver = webdriver.PhantomJS(desired_capabilities=capa, service_args=service_args)
driver.get("http://...")
DesiredCapabilities
的解决方案对我不起作用。 我最终得到了以下解决方案:
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=config.PHANTOMJS_PATH,
service_args=['--ignore-ssl-errors=true',
'--ssl-protocol=any',
'--proxy={}'.format(self.proxy),
'--proxy-type=http',
'--proxy-auth={}:{}'.format(self.proxy_username, self.proxy_password)])
以上方法都不适合我,我使用的是 ProxyMeshproxy 和 selenium phantomJs python。 和以下参数对我有用,因为它解决了错误proxy authentication failed
。
service_args=['--proxy=http://username:password@host:port',
'--proxy-type=http',
'--proxy-auth=username:password']
driver = webdriver.PhantomJS(service_args=service_args)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.