位置: 编程技术 - 正文

使用PyV8在Python爬虫中执行js代码(pypy 使用)

编辑:rootadmin

推荐整理分享使用PyV8在Python爬虫中执行js代码(pypy 使用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python.pyc,pyv8 python3,pypy 使用,pyv8 python3,python v8js,python v8,python pyv8,pyv8 python3,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

可能很多人会觉得这是一个奇葩的需求,爬虫去好好的爬数据不就行了,解析js干嘛?吃饱了撑的?

搜索一下互联网上关于这个问题还真不少,但是大多数童鞋是因为自己的js基础太烂,要么是HTML基础烂,要么ajax基础烂,反正各方面都很烂。基础这么渣不好好去学基础写什么爬虫?

那你肯定要问了“请问我的朋友,你TM怎么也有这个需求?莫非你是个技术渣?”

非也非也,博主作为一个拥有3年多前端经验的攻城尸,怎么会被这个问题给难倒呢,老夫今天遇到的问题很显然没有那么简单。

问题

那么博主到底是遇到什么问题了呢?

博主今天要去爬一个接口,但是调用那个接口需要带上令牌,也就是存储在Cookie中的一个类似token的东西,Cookie的值是一段js生成的,这段js又是通过另外一个接口获取回来的,而获取回来的js代码还是动态的,WTF!!!开发人员你这是 弄撒嘞?

路人甲:我擦嘞,声称经验老道的博主不会分析js的逻辑?

对,我就是不会,特么的js代码都是混淆加密的,眼睛都看瞎了都特么不知道写的都是写啥?

算了,我直接执行拿到结果就好了,管他写的是什么鬼。

思路

理一理思路,现在要做的事情其实很简单

请求接口A,拿到动态生成的混淆过的js代码 执行js代码,拿到生成的cookie值 请求接口B,带上js生成的令牌 拿到结果,愉快的玩耍...

思路相当的清晰,感觉秒秒钟就可以实现了呢。()

难题

使用PyV8在Python爬虫中执行js代码(pypy 使用)

Python里面执行js?有点意思,我干嘛不用nodejs呢?

因为Python是世界上最?诺挠镅园。∶挥兄?唬?/p>

找到了PyV8这个神奇的模块,机器已经有了pip,执行安装一下不就OK了?

不要怀疑,博主机器装的是 Kali Linux ,Root 权限,不需要 sudo

接着报错

似乎是因为缺少 v8.h 这个文件导致的,可是又看不懂啥意思。

解决

通过搜索引擎找到了解决方案,原来是因为 PyV8 依赖于Boost ,然而这个问题官方并没有说,所以得先安装下这个包

安装完成之后继续安装 PyV8 ,依然是上面同样的问题,看来只能手动来了。

下载 并把解压得到的文件复制到

里面去,然后测试看是否成功,终端执行

如果没有报错,那就成功了,开始愉快的玩耍,下面是我需要解析的js代码

已经经过整理,其实刚开始就只有一行,比较尴尬

姿势

折腾的过程可谓是各种曲折,不过也学到了不少姿势,比如,如何把混淆的js还原成原始代码

使用Firebug插件就能轻松解决这个问题,打开firebug插件,找到脚本选项,选择带 eval 的项,一般解析到最后一行就是原始代码了,我上面的那段 js 还原之后就便成了这个样子

稍微整理一下得到一个格式清晰的代码

有了原始代码就很容易得到令牌的生成算法,使用Python生成,这回不用麻烦 PyV8 大神出马了。

总结

标签: pypy 使用

本文链接地址:https://www.jiuchutong.com/biancheng/380086.html 转载请保留说明!

上一篇:Python错误提示:[Errno 24] Too many open files的分析与解决(python错误代码)

下一篇:python字符串中的单双引(python字符串中的反斜杠)

  • 一般纳税人转小规模最新政策2022
  • 免征增值税的项目如何开发票
  • 建安增值税怎么计算
  • 外贸企业出口退税流程图
  • 交易性金融资产和其他权益工具投资的区别
  • 科目汇总表会计核算形式
  • 货物抵款协议书
  • 总公司给分公司开发票
  • 村集体经济组织法
  • 12月了还没找到工作怎么办
  • 多交印花税申请怎么写
  • 企业拥有房产每年如何交税
  • 简易征收税率都包括什么
  • 环境保护税即将施行 有哪些点需要关注?
  • 建筑也增值税
  • 车辆保险属于金融服务吗
  • 购进材料再销售怎么会计分录
  • 产品研发费用计入什么科目
  • 开票需要对方提供营业执照吗
  • 给已经注销的公司退款
  • 自然人股权转让要交什么税
  • 离职后绩效奖金应该按照整月发吗
  • 文件的类型可以通过什么来区分
  • 转账如何退还一部分钱
  • 应交税金月底可以有余额吗
  • 印花税减半征收优惠政策2023
  • 支付工程款需要什么财务手续
  • 小规模纳税人按季度申报
  • 企业预付工程车租赁费
  • element-ui table使用type=‘selection‘复选框全禁用-全选禁用
  • 银行对账单附在记账凭证中吗
  • 全卷积网络fcn详解
  • Js中操作数组的方法
  • php css教程下载
  • ps抠图之后怎么拿出来
  • 专利权研发成功的会计分录
  • 待核销基建支出并入哪个科目
  • 进项税额申报表怎么填写
  • 银行承兑到期后几天内有效
  • dedecms怎么改图片
  • 织梦建站详细教程
  • 财政拨付注册资本金说明
  • 政府会计业务活动费用会计分录
  • 房屋租赁时需要交税吗
  • 固定资产清理账户借方
  • 小规模纳税人企业所得税征收标准
  • 销售货物的收入计入什么科目
  • 长期待摊费用待抵扣税金
  • 留抵增值税怎么填列
  • 车间购买劳保费用会计分录
  • 企业广告费以后会涨吗
  • 高工资的工资
  • 纳税申报准备什么材料
  • 用友t3财务通普及版如何开下年账
  • 企业为职工购买互助保障项目经费可以有什么开支
  • sql外连接
  • sql server如何判断数据库是否存在
  • windf9
  • ubuntu 启动gui
  • linux 清理
  • 虚拟机中怎么安装VMwareTools
  • 老毛桃u盘启动盘制作工具怎么安装win10系统 老毛桃u盘安装win10系统图文教程
  • 怎么把硬盘安装到电脑上
  • media.codec是什么软件
  • win10怎么删除无用文件
  • win 7系统无法删除系统文件
  • linux查看开机运行时间
  • win8 怎么样
  • android开发webview
  • node.js入门教程
  • 硬盘逻辑锁源码
  • 批处理常用命令总结
  • Javascript Throttle & Debounce应用介绍
  • 一起学ap
  • js中的常用方法
  • js设置按钮禁用和开启
  • 航天金税开票软件客服电话
  • 电子增值税专用发票和纸质增值税专用发票的区别
  • 一个公司怎么算利润
  • 辽宁网上税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设