Phantomjs v.2.1 addCookie()始终返回错误
Phantomjs v.2.1 addCookie()始终返回错误
也是最近刚接触Phantomjs,打算用来爬一爬学校的信息门户海报(因为学校的海报有的是文字又有的是图片,图片的链接也比较奇怪:
my. .edu.cn/attachmentDownload.portal?xxxxxxxxxxxxx
好像还要通过向某个地方申请之后才会返回过来。
直接下载下来的图片的格式也是 .portal
明明只是一个学校的网站,干嘛要那么奇怪。
而且样式也不变动的咯,搞的跟上个世纪的网页一样。
垃圾
垃圾
垃圾
回正题:所以希望直接把网页的内容部分截图下来,因为需要登陆,所以需要用到cookies。
官方API文件 http://phantomjs.org/api/
知道了可以用 phantom.addCookie() 来添加cookies。
var login1 = { 'name': 'Login.Token1', 'value': '15 *227', 'path': '/',}if (phantom.addCookie(login1)) { console.log('Cookie_login1 success')} else { console.log('Fail')}//............Fail
可是再实际用的时候发现怎么都不成功,永远都是Fail
一开始以为是添加的Cookie有问题
于是乎我到看到这个文章phantomjs截图的实践——
虽然他这么说可是官方文件里面没有这么说——
不过在介绍 'webpage' 类的 ‘addCookie’ 的时候有说明——
好吧,那就弄吧,于是我改成了这样
var login1 = { 'name': 'Login.Token1', 'value': '15 *227', 'path': '/', 'domain':'https://www.baidu.com' //呵呵}if (phantom.addCookie(login1)) { console.log('Cookie_login1 success')} else { console.log('Fail')//............Fail
还是失败!我去怎么回事!(当然有同学可能已经发现这里的问题了。)
但无论如何......
后来我去Google找
(吐槽一下,我本来还以为中国国内讨论技术的挺多的了,可是去搜phantomjs——少!太少了!)
于是在phantomjs的github官网上看到了这个今年三月的issues
那个....我升级到了v2.1,addcookies怎么老说失败啊
——恩,看来是个bug呢,在这里纠结了挺长时间的我说了一句“窝草”。
额,我英语不太好,帖子后面说'fixed',我就以为已经修复了,于是打算去升级 phantomjs。我再下了一遍官网的版本,可是问题还是在。
我就回帖子去,发现修复修复到了phantomas——‘what!这是什么?’(百度也没有告诉我。),个人感觉上像是试验田这类东西。
我又去用npm,brew,pip找(其实我分不清这些什么关系,我觉得我电脑肯定很乱了。)
npm 下不下来=。=
brew 里面更新没反应
pip 这个.....
——后来,后来,后来
var login1 = { 'name': 'Login.Token1', 'value': '15 *227', 'path': '/', 'domain':'baidu.com' //这里! 这里}if (phantom.addCookie(login1)) { console.log('Cookie_login1 success')} else { console.log('Fail')//............Fail
'domain' 好像不可以加协议(http:// https:// ftp://)【猜测】
不过最后还是Fail
就是这个时候
我他妈想起来,
那个....我升级到了v2.1,addcookies怎么老说失败啊的标题是:
addCookie always returns false in v2.1.1 # 14047
用的是——return,return,return......
不是——fail,fail,fail
所以有可能实际上操作成功了,不过返回失败。
var login1 = { 'name': 'Login.Token1', 'value': '15 *227', 'path': '/', 'domain':'baidu.com' //这里! 这里}if (phantom.addCookie(login1)) { console.log('Cookie_login1 success')} else { console.log('Fail')cookies = phantom.cookiesconsole.log('Listing cookies:');for(var i in cookies) { console.log(cookies[i].name + '=' + cookies[i].value);}//............Fail.......//but return sometime!//好日子 好日子//啦啦啦♪(^∇^*)
真的是这样的。
【完】
迷糊中完了,希望能抛砖引玉。
关键字:JavaScript, phantomjs, console, log
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!