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截图的实践——
虽然他这么说然则官方文件内里没有这么说——
不过在引见 ‘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.cookies
console.log('Listing cookies:');
for(var i in cookies) {
console.log(cookies[i].name + '=' + cookies[i].value);
}
//............Fail.......
//but return sometime!
//好日子 好日子
//啦啦啦♪(^∇^*)
真的是如许的。
总之就是虽然它返回false
,然则现实上操纵是胜利了的!
【完】