由于在遇到的一个网站需要cookie才能访问成功,所以研究了一下如何给phantomjs设置cookie。既然能设置cookie,那么其余的头信息应该也能设置,下面就给大家说明如何实现。
下面是我们要附带给phantomjs浏览器的headers信息。
headers = {
'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
'accept-language': "zh-CN,zh;q=0.8",
'cache-control': "no-cache",
'cookie': "miid=165455699654368GLfgXOlF-KOKx",
'upgrade-insecure-requests': "1",
# 使用phantomjs时,如果加了下面这句,有可能就会收到压缩后的数据
# 如果你在自定义headers后收到了乱码,尝试禁止接收gzip格式数据
'accept-encoding': "gzip, deflate, br",
}
重点来了。
# 构造PHANTOMJS对象以自定义设置
phan = dict(DesiredCapabilities.PHANTOMJS)
# 禁止加载图片
phan["phantomjs.page.settings.loadImages"] = laodpic
# 设置完整的请求头,遍历headers这个字典,使用format构造所有的customHeaders的值
for key,value in get_headers().items():
capability_key = 'phantomjs.page.customHeaders.{}'.format(key)
phan[capability_key] = value
# 可以另外设置user-agent,我们这里引入自定义函数,每次构造的时候都使用不同的user-agent
# 本次设置可以覆盖上面的设置
phan["phantomjs.page.settings.userAgent"] = (get_useragent())