位置: 编程技术 - 正文

使用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字符串中的反斜杠)

  • 合伙企业缴纳的是什么税
  • 增值税发票记账联和抵扣联都丢了怎么办
  • 过路费报销属于什么费用科目
  • 办公费专票怎么做账
  • 收到没有填税号的短信
  • 金融工具减值的简化处理
  • 外债利息支付需要按照天计算吗?
  • 企业咨询费入什么科目
  • 自然人税收管理系统换了电脑怎么恢复数据
  • 中小企业所得税优惠政策有哪些
  • 公允价值变动损益属于什么科目
  • 购买旧资产如何入账
  • 房地产土地增值税优惠政策
  • 个人垫付费用报销申请怎么写
  • 领用自产应税消费品负担的消费税计入在建工程成本吗
  • 第三方协议补贴
  • 母公司收购少数股东股权,之前的利润母公司不享有
  • 出口发票税率为0还能退税吗
  • 文体活动费用计入什么科目
  • 开发商乱要回迁怎么投诉
  • 中药饮片适用增值税税率
  • 个人买卖二手房交什么税
  • 通行费如何填报表二
  • 企业所得税是否有利于调节产业结构
  • 土地出让金缴纳契税计税依据
  • 上市公司非限售股股票转让收入
  • 充值销售技巧和话术总结
  • 标准差超过多少不合理
  • 旅游门票报销怎么算
  • 航天金税电子发票
  • 基本社会保障性缴款包括什么
  • mac开机按command+r没反应
  • 以报销形式发放的工资 劳动仲裁
  • php写json
  • php验证码代码怎么写
  • 媒体文件不能播放
  • 评估价值时点依据什么
  • 什么是会计分录其一般表达形式是怎样的
  • 营业外收支的内容
  • vue element ui教程
  • php保存远程图片
  • php三大特性
  • 高速发票看不见金额怎么办
  • php异步处理方案
  • 期初金额和期末金额怎么算
  • flutter项目怎么运行
  • 增值税附加税的计算基数
  • rabbitmq中文手册
  • 资产负债表所有者权益怎么算
  • dedecms标签怎么用
  • 贴现金额的会计分录
  • access untagged
  • sqlserver2016维护计划
  • 应收账款的贷方发生额表示什么
  • 建筑工程的税务处理
  • 企业取得财产转让收入
  • 预交税会计分录
  • 承兑汇票到期取现手续费
  • 卖旧固定资产计入哪个科目
  • 工程施工企业收到工程款,怎么做分录
  • 税金及附加如何记账
  • 二类银行卡是什么卡
  • 关于月亮的诗句
  • linux图形化界面怎么打开命令窗口
  • redhat常用命令总结
  • win7更改电脑设置在哪里
  • linux系统命令包含在哪个目录中
  • window10自动维护功能有什么用
  • angularjs定义全局变量
  • .material design
  • 反序存放字符串
  • js跨域请求的三种方法
  • shell脚本-lt
  • 如何用python创建数据集
  • python文件描述符
  • $jquery
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • android应用程序包下载安装
  • 查询完毕
  • 国地税合并人员瘦身
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设