位置: 编程技术 - 正文

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

  • 出口退税便捷退税操作流程
  • 建筑业异地预缴税款时间
  • 房地产涉及的税种和税率
  • 个人抬头发票可以抵税个人所得税吗
  • 加计抵减怎么入账
  • 年末转出未交增值税的视频
  • 个税中的其他所得税
  • 销售无形资产增值税纳税义务发生时间
  • 超市购物卡开票可以做账吗
  • 企业经营者试行什么制度
  • 哪些进项税不能加计抵减
  • 一般纳税人技术开发税率
  • 资产处置损益在企业所得税汇算时如何填列
  • 主办会计和会计助理的区别
  • 注销怎么做账
  • 供应商返点抵应怎么做账
  • 红冲普通发票怎么开具
  • 进料加工出口退税计算 计划分配率
  • win101703怎么看
  • 国有资产租赁合同问题
  • win11无限重启怎么解决
  • 外地的社保在本地个税扣除
  • 0x0000001e蓝屏代码的含义
  • 现金折扣的会计处理方法
  • 个人医疗保险怎么取出来
  • 纳税人逾期申报
  • php中strtotime
  • 增值税专用发票的税率是多少啊
  • Waterfalls at the source of the Mundo River, Sierra de Riopar, Albacete, Spain (© Westend61/Getty Images)
  • 计提资产减值准备是利好还是利空
  • 向银行借入长期借款200000元,存入银行
  • php获取文件夹大小
  • vue实现文件上传和下载
  • opencv 边缘检测
  • 手把手教你安装技嘉b550 master主板
  • 净化器 ccm
  • 个人提供劳务需要开发票吗
  • SQL Server 2005 Management Studio Express企业管理器将英文变成简体中文版的实现方法
  • php 文件处理
  • 印花税减半征收政策什么时候开始的
  • 其他应收款如何处理
  • mssqlserver服务安装
  • 公司账户钱能全取出来吗
  • 厂家给经销商的补贴怎么开票
  • 固定资产无票怎样入账
  • 亏损企业研发费用加计扣除还会退税吗
  • 飞机票退票费报销凭证图片
  • 企业视同销售的情况都有哪些?
  • 标准成本法计算公式图
  • 价税分离怎么算
  • 公司向职工借钱怎么做账
  • 对公账户如何转钱进去
  • 年初未分配利润在利润表怎么填
  • mysql表字段设置默认值
  • 查找共享打印机所在的电脑
  • Mac无法连接到iCloud
  • linux安装openssh-server
  • linux 显示
  • Win10中文输入法不能用
  • winxp系统和win7系统有什么区别
  • centos安装v2
  • window8系统好用吗
  • nb3是什么文件
  • win8如何设置
  • surface pro7应用
  • 带上Windows 8去旅行 让你的旅途更轻松
  • linux服务器dns配置安装
  • unity Toggle Groud
  • node.js中module.exports与exports用法上的区别
  • html用div来写表格
  • 每次开机windows桌面更新
  • bat批处理如何添加参数运行
  • js过滤字符串中的特殊字符
  • javascript如何
  • mysql数据表复制
  • 访问网页显示脚本错误
  • 一些常用的网络命令
  • jquery滚动插件
  • 湖南税务发票查询系统查不到外省的发票
  • 合伙企业如何申报税务报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设