逆向工程Python爬虫——国税局发票查验平台

x国增值税发票查验平台网站js逆向分析及全逆向算法还原 首先,我们需要知道的是在核心的算法中,源代码使用了ob进行了混淆,我们使用第三方软件进行初次还原时,也只能还原一部分,核心的内容基本会被还原,但是生成的代码还是无法完全被理解阅读,基于此,需要二次还原,这里注意到Ob混淆的核心思想,是一个大数组和若干个解密函数,后续的代码里不断的调用解密函数进行解密。官方很给力,直接debug了,至于如何去掉断点,可以参考百度上的其他教程,这里给出一个办法,上图中点击数据1所处位置,使其颜色为蓝色,点击2或者点击上方的debug恢复按钮。余下的参数在验证阶段用到。 阅读详情

前言

这是一篇含金量很高的干货文章,笔者将手把手带领各位一步一步地实现爬取国家税务总局全国增值税发票查验平台(以下简称“查验平台”)。这个想法诞生在19年初,当时在做一款通过扫描二维码就可以查验发票的小程序。
IMG0431.PNG
当时由于笔者学艺尚浅,没办法模拟请求爬取查验平台,所以最终采用的技术方案是通过web自动化测试工具selenium控制浏览器去模拟查验步骤,即使这样,开发过程也是困难重重,不过最后笔者和伙伴们成功实现了整套流程,最后开发出的产品口袋发票夺得了包括2019微信小程序开发大赛赛区三等奖在内的多个奖项。
但是产品是无法真正上线的,因为通过selenium爬虫的方式实在是太消耗性能了,测试结果表明:百度云4核8G的服务器职能同时服务10人以内。
笔者一直不甘心,暗自下定决心:一定要实现模拟请求爬取。
那么闲话少说,我们开始吧。

查一张发票

第一步肯定是分析查验平台整体的逻辑,所以我们首先来真实地查验一张发票。
这里笔者使用的是Chrome 76.0.3809.132,是本文发布时的最新版本。
image.png

  • 这里我找到了一张发票,首先输入发票号码
    image.png
    我发现:当我的光标移动到发票号码输入框时发票代码右侧出现了一个对勾,这说明在发票代码失焦的时候会检测发票代码正确性,然后给用户一个反馈。
    这是我在京东买书的发票,是在北京开具的,这里可以了解一下发票号码的含义:百度百科
  • 接下来我们继续输入发票号码
    image.png
    有趣的事情出现了,发票号码失焦之后下面突然出现了验证码,这里我们得出结论:验证码请求的时机是在发票号码失焦之后
  • 继续输入开票日期和校验码后六位
    image.png
    此时查验按钮还不可点击
  • 输入验证码
    image.png
    此时我们了解到税务总局的验证码含有中文和英文,并且需要根据颜色指示输入,让我们多刷新几次验证码。
    image.png
    image.png
    image.png
    image.png
    我刷新了n次之后发现:验证码提示只有4种情况:输入全部、黄色、红色、蓝色
    查验按钮在所有信息填写完之后出现
  • 最后点击查验即可得到发票的真伪和详细信息

查看获取验证码的请求

  • 我将网页刷新然后F12打开Chrome的调试工具,点击Network然后将列表清空。
    image.png
  • 接下来我们重复刚才查验发票的操作,直到失焦发票号码输入框,然后观察验证码是怎么来的。
    image.png
    此时我们发现了验证码的请求,看一下详细信息。
    image.png
    这是一个jQuery发起的请求,笔者对jQuery了解的不深,不过我们继续看请求参数:
参数名 含义
callback 固定值
fpdm 发票代码
fphm 发票号码
r 看起来像是个用来签名的随机数
v 应该是版本号 是个固定值
nowtime
Python识别二维码获取电子发票基本信息 Python识别二维码获取电子发票基本信息前言 前言 因工作需要,每月需要对大量的电子发票重命名,命名格式为发票代码_发票号码.pdf,几经尝试,发现同样是pdf格式的电子发票,使用pdfplumber读取出来的文字信息却有很大不同,一些通行费发票可以很好地识别出全部内容,非通行费的电子发票却只能读取出一部分发票信息,而且最需要的发票代码和发票号码恰恰是读取不出来的。在网上一番查找之后,最终实现通过识别电子发票左上角的二维码来读取发票代码发票号码等基本信息并对pdf文件进行重命名。 import os im 阅读详情

相关推荐

python-增值税发票识别

调用百度的OCR接口,对指定目录下的所有发票(jpg、png、pdf)进行识别,最后将识别结果保存至excel中。是发票存放的目录,这两个填好后直接运行程序就可,最后生成以。为发票识别api的token,

Achernar0208的博客 1951

用python提取发票扫描件常用的10多个发票信息保存到excel表

用python提取发票扫描件常用的10多个发票信息输出所有文件和文件夹 如何将发票扫描将中常用的10-20个信息提取到excel表格中,用python提取是不错的方法。 1、用python提取发票信息,首先要装一个python软件,可以在www.python.org官方网站进行下载; 2、最好下载一个pycharm,python的集成开发环境,用pycharm编写代码,比较方便,有智能的提示; 3、在百度智能云上注册一个用户,实名认证,创建管理应用(文字识别);一个用户每天可以识别500份发票; 4、pyt

liaoqilin2020的博客 4426

政府税收数据抓取与分析:使用Python爬虫进行国家税收分析

随着大数据时代的到来,政府税收数据的透明度逐渐提高,政府网站及税务机构的公开数据也为经济分析、财政政策调整及公众监督提供了重要依据。通过爬取这些数据并进行分析,可以更好地了解税收政策的执行情况、税收增长的趋势及其对经济的影响。通过本博客,读者可以掌握从抓取数据到分析的完整流程,能够独立进行类似的数据抓取与分析工作。进行数据分析与可视化。本文详细介绍了如何使用Python爬虫抓取政府税务局网站的税收数据,进行数据清洗与存储,并结合。抓取的数据可以进行多维度分析,以揭示税收增长的趋势、不同税种的收入变化等。

2201_76125261的博客 1539

Python 爬虫实战:税务局通知通告高效爬取(文档解析 + 合规性下载)

税务局通知通告的高效爬取,对于税务从业者、企业和个人来说具有重要意义。通过 Python 爬虫技术,我们可以自动化地获取税务局发布的政策文件、税务新闻和通知通告,实现文档的结构化解析和合规性检查。本文将详细介绍如何利用 Python 爬虫技术实现这一系统,涵盖环境搭建、登录认证、文档解析等关键步骤。

u014481728的博客 634

Python爬虫实战教程:如何高效爬取税务局通知通告

税务局发布的通知通告包含政策法规、办税指南、公告信息等,是纳税人、企业合规经营的重要参考。官网发布频率高,手动查看不便,自动爬取并保存,方便信息及时掌握及历史数据归档。本文以合法合规的方式示范,建议实际应用前确认目标网站允许爬取的范围和方式。建议使用pandas进行数据清洗,如去重、空值处理等。对于研究税务政策、进行大数据分析、搭建行业信息平台,爬取税务局通知通告信息尤为关键。公告列表以分页形式展现,包含标题、发布时间和详情页链接。进行政策趋势图、发布频率统计等可视化。爬取公开数据时,务必遵守网站的。

2201_76125261的博客 1762

某全国增值税发票查验平台 接口JS逆向

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路本文的验证码网址如下,使用base64解码获得这个平台功能没什么好说的,就是发票查验,此接口唯一的难点有两处,一是查验需要的验证码,四种颜色的文字,选择一种颜色输入,该验证码,我很早就解决了,详情见该文章那么接下来来分析一下接口加密。

码王吴彦祖的博客 2315

国家税务总局全国增值税发票查验平台python实现

python利用execjs运行js来还原平台加密的过程。 文件介绍: gc.py #主程序 fqlx.js #fqlx的加密 key9.js # key9的加密 quan.js #flwq39的加密 主要是破解js加密的部分,所以验证码这边就没有特殊处理,只是显示出来,要自己手动输入。想要全自动的话可以接打码平台或者使用已经训练好的图像识别模型。

core_analyzer分析c++程序内存占用

环境:centos; 进程:单进程多线程c++程序; 问题:1. 分析系统内存占用; 2. 分析ptmalloc内存空洞(bins上的空闲chunk的大小); 包括:1. 占用了很大内存的c++进程; 2. gcore(在进程不core dump的情况下生成core文件); 3. core_analyzer(分析gcor...

weixin_41644391的博客 4032

IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析

自从召集2020届校招同行加入新建立的“IC/FPGA校招笔试面试交流群“,见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知识的理解更加深刻了。 对于建立时间而言,从单独的对触发器的建立时间和保持时间的分析到了对电路(系统)的建立时间到保持时间的分析,前者是核心,后者是扩展,后者建立在前者的基础之上进行推到得到,同时也是芯片内部实际遵循的时...

Reborn Lee 1万+

WINCC8.1工业组态软件安装与授权配置指南

SCADA系统作为工业自动化控制的核心平台,通过实时数据采集与监控实现生产流程可视化。WINCC作为西门子旗舰级组态软件,其8.1版本凭借稳定的运行时环境在汽车制造、流程工业等领域广泛应用。本文从工业控制系统软件安装规范切入,重点解析WINCC8.1与Automation License Manager的协同工作原理,详细说明包括系统环境检查、安装包校验、授权文件配置等关键技术环节。针对工程实施中常见的内存配置不足、授权管理器报错等典型问题,提供经过现场验证的解决方案,特别适用于需要进行产线监控系统升级维护

cqwf95925的博客 853

GPS从入门到放弃(一) --- GPS基础原理

GPS从入门到放弃(一) — GPS基础原理 GPS,全称Global Positioning System,已经广泛应用于我们的日常生活中了,现在的智能手机 里都会自带GPS定位功能。这是一个美国的全球定位系统,虽然我们现在也有北斗了,但毕竟GPS搞的早,所以先从它开始研究起。 整个GPS系统分三大部分: 地面站 卫星 接收机 地面站负责监控。它们通过接收、测量各个卫星信号,计算卫星的运行轨...

tyst08的专栏 2万+

Excel VBA--按某一列拆分数据到多个文件

首先,将需要拆分的sheet命名为“明细”,接下来运行此代码,按提示操作即可。 在这里插入代码片 Sub chaifen() '定义变量类型 Dim sht, sh1, sh2 As Worksheet Dim k, i, j As Integer Dim irow As Integer Dim col As Integer Dim str As String '程序开始是要求输入按哪一列拆分数...

weixin_43650026的博客 5295

PLC与变频器联动控制:从开关量、模拟量到通讯的接线与编程实战

在工业自动化系统中,电机调速控制是核心需求之一,其关键在于实现可编程逻辑控制器(PLC)与变频器之间的可靠联动。其基本原理是通过PLC输出控制信号,由变频器接收并驱动电机按设定速度运行。这项技术的核心价值在于实现电机的软启停、精确调速与节能控制,广泛应用于风机、水泵、传送带及精密张力控制等场景。其中,开关量控制以其接线简单、抗干扰能力强的特点,成为基础且可靠的方案;而模拟量控制则能实现无级平滑调速,满足更高精度的工艺要求。本文以西门子、三菱等主流品牌为例,深入解析了这两种主流控制方式的硬件接线、参数设置与梯

727

DCMTK编译

dcmtk-3.6.4 使用Unicode?dcmtk的编译选项里没有关于Unicode的选项,OFString的接口里明确使用了OFString(char*)作为构造函数参数,所以,我们可以假设不能够自己擅自在CMakeList.txt里增加一行 add_definitions(-DUNICODE -D_UNICODE) 来强制使用Unicode编码。 亲测:加了之后编译不过 void...

C++ 爱好者 make_it_simple888 1244

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: 学习笔记——优先队列和堆排序
BB-fat
博客等级 码龄8年 27粉丝 16原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值