资讯专栏INFORMATION COLUMN

Phantomjs v.2.1 addCookie()始终返回错误

Richard_Gao / 2768人阅读

摘要:始终返回错误也是最近刚接触打算用来爬一爬学校的信息门户海报因为学校的海报有的是文字又有的是图片,图片的链接也比较奇怪所以希望直接把网页的内容部分截图下来,因为需要登陆,所以需要用到。总之就是虽然它返回,但是实际上操作是成功了的完

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,但是实际上操作是成功了的!

【完】

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79588.html

相关文章

  • 爬虫框架WebMagic源码分析之Selenium

    摘要:有一个模块其中实现了一个。但是感觉灵活性不大。接口如下它会获得一个实例,你可以在里面进行任意的操作。本部分到此结束。 webmagic有一个selenium模块,其中实现了一个SeleniumDownloader。但是感觉灵活性不大。所以我就自己参考实现了一个。 首先是WebDriverPool用来管理WebDriver池: import java.util.ArrayList; im...

    MarvinZhang 评论0 收藏0
  • Webmagic+Selenium+PhantomJS实战

    摘要:还是直接贴代码说明比较实在。重新调整窗口大小,以适应页面,需要耗费一定时间。建议等待合理的时间。负责抠图指定坐标不保持比例,调用进程,返回识别结果。 还是直接贴代码说明比较实在。感觉webmagic-selenium这个模块有点鸡肋,但还是有可借鉴之处。借鉴它写了一个SeleniumDownloader,如下: import org.openqa.selenium.By; import...

    zhangxiangliang 评论0 收藏0
  • Angular2 网站 SEO 攻略

    摘要:使用生成静态页,再配置在爬虫访问时提供静态页中的内容。如何在爬虫访问时让爬虫获取到静态页中的内容要演练此部分内容,首先你要把网站用部署。 Angular 的优点有很多,但如果用它来开发网站的话,就不得不面对它的两大缺点: 首页加载慢 搜索引擎的爬虫获取不到页面内容 由于 Angular 是通过 js 动态生成 dom 并插入到页面中,搜索引擎默认只能获得页面的标题。我们可以使用 c...

    niuxiaowei111 评论0 收藏0
  • 《Build your own AngularJS》手记

    摘要:最近在看,打算跟着书中的代码敲一遍,加深对的理解。在这里记录过程中的问题与心得。根据排查内存耗尽应该是这个版本的问题,换成后问题消失。因此认为这种写法是有风险的,必须用顶上那一行注释表明我确实要全局都的才行。不得不感叹的严谨。 最近在看 build your own angularjs ,打算跟着书中的代码敲一遍,加深对AngularJS的理解。在这里记录过程中的问题与心得。 Int...

    zsy888 评论0 收藏0
  • PhantomJS 安装

    摘要:变量如果用户目录下存在,比如我的,则添加一行否则新建然后在添加上文在中输入如果可以看到版本号,则安装成功。 PhantomJS 安装 showImg(https://segmentfault.com/img/bVL0NY?w=408&h=252); Mac OS X && Windows 1、PhantomJS下载地址 按照系统下载对应的版本, macOS 下载: phantomjs...

    tinylcy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<