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呢,在这里纠结了挺长时间的我说了一句“窝草”。

  1. 额,我英语不太好,帖子后面说'fixed',我就以为已经修复了,于是打算去升级 phantomjs。我再下了一遍官网的版本,可是问题还是在。

  2. 我就回帖子去,发现修复修复到了phantomas——‘what!这是什么?’(百度也没有告诉我。),个人感觉上像是试验田这类东西。

  3. 我又去用npm,brew,pip找(其实我分不清这些什么关系,我觉得我电脑肯定很乱了。)

npm 下不下来=。=

  1. brew 里面更新没反应

  2. 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

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部