Phantomjs v.2.1 addCookie()一直返回毛病

Phantomjs v.2.1 addCookie()一直返回毛病

也是近来刚打仗Phantomjs,盘算用来爬一爬学校的信息流派海报(由于学校的海报有的是笔墨又有的是图片,图片的链接也比较新鲜:

my.**.edu.cn/attachmentDownload.portal?xxxxxxxxxxxxx

所以愿望直接把网页的内容部份截图下来,由于须要上岸,所以须要用到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

由于觉得背面的叙说有些烦琐以及些许的语焉不详,所以先上结论:

虽然它返回false,然则现实上操纵是胜利了的!

一开始认为是增加的Cookie有题目

《Phantomjs v.2.1 addCookie()一直返回毛病》

因而乎我到看到这个文章phantomjs截图的实践——

《Phantomjs v.2.1 addCookie()一直返回毛病》

虽然他这么说然则官方文件内里没有这么说——
《Phantomjs v.2.1 addCookie()一直返回毛病》
不过在引见 ‘webpage’ 类的 ‘addCookie’ 的时刻有申明——
《Phantomjs v.2.1 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 v.2.1 addCookie()一直返回毛病》

(吐槽一下,我原本还认为中国国内议论手艺的挺多的了,然则去搜phantomjs——少!太少了!)

因而在phantomjs的github官网上看到了这个本年三月的issues

谁人….我晋级到了v2.1,addcookies怎样老说失利啊

——恩,看来是个bug呢,在这里纠结了挺长时间的我说了一句“窝草”。

  1. 额,我英语不太好,帖子背面说’fixed’,我就认为已修复了,因而盘算去晋级 phantomjs。我再下了一遍官网的版本,然则题目照样在。

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

  3. 我又去用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.cookies

console.log('Listing cookies:');
for(var i in cookies) {
    console.log(cookies[i].name + '=' + cookies[i].value);
}

//............Fail.......
//but return sometime!
//好日子 好日子
//啦啦啦♪(^∇^*)

真的是如许的。
总之就是虽然它返回false,然则现实上操纵是胜利了的!

【完】

    原文作者:RDDcoding
    原文地址: https://segmentfault.com/a/1190000005367333
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞