我正在尝试从Adidas获取产品信息,但出于某种原因,当使用PhantomJS发出获取请求时,会话暂停并且没有收到响应。我已尝试使用Selenium与Chrome和无头与Chrome,它的工作原理相同。所以我的假设是,某种阻止PhantomJS的防火墙或浏览器指纹跟踪。 我需要使用经过身份验证的代理,因此不能选择使用Chrome的硒。
有人能帮助我使用PhantomJS吗? 这是我的原始剧本:
from selenium import webdriver
import base64
username = 'proxyusername'
password = 'proxypassword'
proxy = 'host:port'
service_args = ['--proxy=http://'+str(proxy),
'--proxy-type=http'
]
login =str(username)+':'+str(password)
authentication_token = "Basic " + base64.b64encode(login.encode())
capa = webdriver.DesiredCapabilities.PHANTOMJS
capa['phantomjs.page.customHeaders.Proxy-Authorization'] = authentication_token
capa['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
driver = webdriver.PhantomJS("/usr/local/bin/phantomjs",desired_capabilities=capa, service_args=service_args)
print 'Getting URL'
driver.get('http://www.adidas.co.uk')
print 'Request made'
html_source = driver.page_source
print html_source