当前位置: 首页 > news >正文

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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

也是最近刚接触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有问题

1460000006787647?w=1000&h=1000

于是乎我到看到这个文章phantomjs截图的实践——

1460000005367354

虽然他这么说可是官方文件里面没有这么说——
1460000005367350
不过在介绍 'webpage' 类的 ‘addCookie’ 的时候有说明——
1460000005367352

好吧,那就弄吧,于是我改成了这样

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找

1460000005367336

(吐槽一下,我本来还以为中国国内讨论技术的挺多的了,可是去搜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,但是实际上操作是成功了的!

转载于:https://my.oschina.net/airship/blog/877949

相关文章:

  • 在shell中编写函数
  • Gartner:自建大数据安全分析平台恐难逃失败厄运!
  • Linux A机器免密码SSH登录B机器
  • Python安装pandas
  • Play 2D games on Pixel running Android Nougat (N7.1.2) with Daydream View VR headset
  • 洛谷 1330 封锁阳光大学
  • windows server 安装phpVirtualBox web服务
  • Cmake 使用和交叉编译配置
  • java基础理论 程序控制流程
  • H3C IRF原理及 配置
  • puppet自动化基础
  • 认识jQuery Mobile?
  • idea maven 创建webapp项目卡
  • ES5中新增的Array方法,IE8及以下不支持,解决办法,大神链接
  • Java中The project cannot be built until build path errors are resolved错误解决方法
  • Android优雅地处理按钮重复点击
  • Invalidate和postInvalidate的区别
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript服务器推送技术之 WebSocket
  • JAVA并发编程--1.基础概念
  • Java超时控制的实现
  • LeetCode18.四数之和 JavaScript
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • springboot_database项目介绍
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端面试之闭包
  • 区块链共识机制优缺点对比都是什么
  • 如何用vue打造一个移动端音乐播放器
  • 首页查询功能的一次实现过程
  • 一个项目push到多个远程Git仓库
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • mysql面试题分组并合并列
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #NOIP 2014# day.2 T2 寻找道路
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2)MFC+openGL单文档框架glFrame
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Oracle)SQL优化技巧(一):分页查询
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (四) 虚拟摄像头vivi体验
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Linq学习笔记
  • (转)Linux下编译安装log4cxx
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现