【基于Selenium的发票查验-部署笔记】

基于Selenium的发票查验

  • 前言
    • 目录结构
    • 验证码部分
  • 部署笔记
      • 1.Centos7将Python3.6升级至Python3.9
      • 2.Centos7配置Chrome+Chromedriver环境
      • 3.解决Chrome中文方块乱码
      • 4.安装selenium并测试
  • 5.GUI界面

前言

由于本人才粗学浅,JS逆向国税局做不到,只好采用"笨"方法使用Selenium进行发票查验,本文记录的是部署笔记

目录结构

├── README.md                       # 帮助文档

├── ChromeBrowserDrive.py           # 基于selenium的Chrome驱动

├── InvoiceAutomationVerify.py      # 用于处理页面爬取

├── OtherUtil.py                      # 其它的杂七杂八

├── Server.py                          # 基于Flask的请求查验接口

├── stealth.min.js                    # 不知道是啥
(原文链接: https://blog.csdn.net/cqcre/article/details/110944075)

├── VerifCodeOCR.py            # 基于opencv的彩色提取和ddddocr的文字识别

├── PicSpiltDir                        # 存放图片

│       ├── code.png                # 验证码图片

│       ├── black.png               # 蓝色文字图片

│       ├── red.png                  # 红色文字图片

│       ├── ...

├── Logging.txt                      # 日志目录

验证码部分

不会大佬们的验证码训练,所以采用截图后将彩色文字提取出来,提取后使用ddddocr进行文字识别,在这里由衷的感谢ddddocr作者

色彩提取

验证码原图
验证码原图
提取的红色文字
红色文字
提取的黑色文字
黑色文字

部署笔记

1.Centos7将Python3.6升级至Python3.9

华为镜像源: https://repo.huaweicloud.com/python/

# 1.1 下载Python3.9.8安装包
wget https://repo.huaweicloud.com/python/3.9.8/Python-3.9.8.tar.xz
# 1.2 解压Python安装包
tar - xvf Python-3.9.8.tar.xz
# 2.1 移除旧版本Python, 删除软链接
rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3
# 2.2 清空旧版本内容, 注意: python2 和 python3 是在同一个目录中!!!
# 2.2.1 进入目录
cd /usr/bin
# 2.2.2 卸载Python3
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
# 2.2.3 卸载所有残余文件
whereis python3 |xargs rm -frv
# 2.3 查看现有安装的python
whereis python
# >>> python: /usr/bin/python2.7 ...
# 3.执行安装Python
# 3.1 进入刚刚解压的目录 本文目录地址是 /usr/tmp/Python-3.9.8
cd /usr/tmp/Python-3.9.8
# 3.2 指定安装目录
./configure --prefix=/usr/local/python3
# 3.3 make编译与安装
make && make altinstall
# 3.4 删除临时文件
make clean
# 4.创建软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

Python3升级原文地址: https://blog.csdn.net/yxn4065/article/details/124161186

2.Centos7配置Chrome+Chromedriver环境

Chrome地址:

# 1.下载 chrome
wget https://dl.google.com/linux/direct/chrome_current_x86_64.rpm
# 1.2 使用 yum 本地安装
yum localinstall chrome_current_x86_64.rpm
# 1.3 查看 chrome 版本
google-chrome --version
# >>> Google Chrome 109.0.5414.74

# chromedriver 各版本地址: https://registry.npmmirror.com/binary.html?path=chromedriver/
# 2.1 下载 chromedriver
wget https://registry.npmmirror.com/-/binary/chromedriver/109.0.5414.74/chromedriver_linux64.zip
# 2.2 解压文件
unzip chromedriver_linux64.zip
# 2.3 查看 chrome 所在目录
rpm -qal |grep chrome
# 2.4 chromedriver 移动到 chrome 目录
mv chromedriver /usr/bin/
# 2.5 chromedriver 赋权
chmod 755 /usr/bin/chromedriver

Chrome安装原文地址: https://zhuanlan.zhihu.com/p/111603377

3.解决Chrome中文方块乱码

yum -y groupinstall "X Window System"
yum -y groupinstall chinese-support
yum -y groupinstall Fonts

解决Chrome中文方块乱码原文地址: https://www.cnblogs.com/vekair/p/15878518.html

4.安装selenium并测试

# 1.安装selenium
pip3 install selenium -i https://pypi.mirrors.ustc.edu.cn/simple/
# Python3测试selenium环境部署结果
import time
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options


CHROME_PATH = "/usr/bin/google-chrome"
DRIVER_PATH = "/usr/bin/chromedriver"


options = Options()
options.add_argument("--headless")
options.page_load_strategy = 'eager'
options.add_argument('ignore-certificate-errors')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('blink-settings=imagesEnabled=false')
options.add_argument('--disable-gpu')
options.add_argument(
    'user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) '
    'Chrome/109.0.5414.74 Safari/537.36'
)
# 指定浏览器路径
options.binary_location = CHROME_PATH
# 实例化驱动器
browser = Chrome(executable_path=DRIVER_PATH, options=options)
# 读取配置文件
with open('./stealth.min.js') as f:
    js = f.read()
# 变更配置
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": js})
# 打开网页
browser.get("https://www.baidu.com")
# 等待1秒
time.sleep(1)
# 打印网页源码
print(browser.page_source)
# 退出浏览器
quit()

centos7中配置python爬虫原文地址: https://zhuanlan.zhihu.com/p/111603377

5.GUI界面

https://blog.csdn.net/Jhing99/article/details/128864137

你可能感兴趣的:(selenium,python)