吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10398|回复: 112
收起左侧

[Python 转载] 批量车辆违章查询----20220413更新

[复制链接]
hellolouis 发表于 2021-3-3 18:08
本帖最后由 hellolouis 于 2022-4-13 11:01 编辑

由于需要管理公司车辆,每月要查询车辆是否有违章,百度上找了一遍也没找到可以批量查询的,于是自己动手写了个小程序。


使用前必须先打开car.xlsx,写入车辆的车牌,发动机号,车架号。否则出现打开闪退的情况。
使用前必须先打开car.xlsx,写入车辆的车牌,发动机号,车架号。否则出现打开闪退的情况。
使用前必须先打开car.xlsx,写入车辆的车牌,发动机号,车架号。否则出现打开闪退的情况。

首次使用需下载 xlrd1.2.0,复制以下代码到命令行
[Python] 纯文本查看 复制代码
pip install xlrd==1.2.0


-------------------------------------------
  • 使用说明
QQ截图20210401154415.png


excel文件里,有两个工作表,分别是车牌号,发动机号(后6位,数字前加 '),车架号(后6位,数字前加 '),保存,运行py文件即可。


  • 截图
123.png

  • 源码
[Python] 纯文本查看 复制代码
import urllib.request
import urllib.parse
import xlrd
import json


class Check():
    def choose(self):
        while True:
            cartype = input('='*25+'\n1 -- 查询小型轿车违章\n2 -- 查询大型汽车违章'+'\n3 -- 同时查询所有类型\n'+'='*25+'\n请输入数字按Enter键确认:\n\n')
            if cartype == '1':
                return '02'
            elif cartype == '2':
                return '01'
            elif cartype == '3':
                return '03'
            else:
                print('\n'+'┌'+'─'*11+'┐'+'\n│输入有误,请重新输入。│\n'+'└'+'─'*11+'┘\n')


    def check(self, hphm, engine, body, hpzl):
        self.hphm = hphm
        self.engine = engine
        self.body = body
        self.hpzl = hpzl
        url = 'https://sp0.baidu.com/5LMDcjW6BwF3otqbppnN2DJv/traffic.pae.baidu.com/data/query?city=dongguan&hphm=&hpzl=&engine=&body=&source=pc'
        data = {
        'hphm': self.hphm,
        'hpzl': self.hpzl,
        'engine': self.engine,
        'body': self.body,
        'source': 'pc',}

        data = urllib.parse.urlencode(data).encode('utf-8')
        response = urllib.request.urlopen(url,data)
        msgjson = json.loads(response.read())
                   
        if 'success' in msgjson['msg'] :
            if msgjson['data']['count'] == 0:
                print(hphm+'\t没有违章')
            else:
                print(hphm+'\t违章', msgjson['data']['count'],'次')
                while msgjson['data']['count'] > 0:
                    print('时间: ', msgjson['data']['lists'][msgjson['data']['count']-1]['time']+'\n'
                          '罚款: ', str(msgjson['data']['lists'][msgjson['data']['count']-1]['fine'])+'\n'
                          '扣分: ', str(msgjson['data']['lists'][msgjson['data']['count']-1]['point'])+'\n'
                          '处理: ', str(msgjson['data']['lists'][msgjson['data']['count']-1]['handled'])+'\n'
                          '类型: ', msgjson['data']['lists'][msgjson['data']['count']-1]['violation_type']+'\n'
                          '地址: ', msgjson['data']['lists'][msgjson['data']['count']-1]['address']+'\n')
                    with open(r'查询结果.txt','a+') as file:
                        file.write(f'{hphm}\t违章\n{"时间: ", msgjson["data"]["lists"][msgjson["data"]["count"]-1]["time"]}\n{"罚款: ", msgjson["data"]["lists"][msgjson["data"]["count"]-1]["fine"]}\n{"扣分: ", msgjson["data"]["lists"][msgjson["data"]["count"]-1]["point"]}\n{"处理: ", msgjson["data"]["lists"][msgjson["data"]["count"]-1]["handled"]}\n{"类型: ", msgjson["data"]["lists"][msgjson["data"]["count"]-1]["violation_type"]}\n{"地址: ", msgjson["data"]["lists"][msgjson["data"]["count"]-1]["address"]}\n')
                    msgjson['data']['count'] -= 1

        
        elif '输入参数不合法' in msgjson['msg']:
            print(hphm, msgjson['msg'])
            with open(r'查询结果.txt','a+') as file:
                file.write(f'{hphm}\t查询失败,请检查车辆信息!\n'+'-'*70+'\n')

        else:
            print(hphm+'\t查询失败。')        


    def run(self):
        hpzl = self.choose()
        if hpzl == '02':
            print('开始查询,请稍等...\n\n'+'-'*30)
            for i in range(1, sheet.nrows):
                self.check(sheet.cell_value(i,0), sheet.cell_value(i,1), sheet.cell_value(i,2), hpzl)
                print('-'*30)
            input('\n\n查询结束,按Enter键结束。')

        elif hpzl == '01':
            print('开始查询,请稍等...\n\n'+'-'*30)
            for i in range(1, sheet2.nrows):
                self.check(sheet2.cell_value(i,0), sheet2.cell_value(i,1), sheet2.cell_value(i,2), hpzl)
                print('-'*30)
            input('\n\n查询结束,按Enter键结束。')

        else:
            print('开始查询,请稍等...\n\n'+'-'*30)
            print('        小型轿车\n')
            for i in range(1, sheet.nrows):
                self.check(sheet.cell_value(i,0), sheet.cell_value(i,1), sheet.cell_value(i,2), '02')
                print('-'*30)
            print('\n\n        大型汽车\n')
            for i in range(1, sheet.nrows):
                self.check(sheet2.cell_value(i,0), sheet2.cell_value(i,1), sheet2.cell_value(i,2), '01')
                print('-'*30)
            input('\n\n查询结束,按Enter键结束。')


car = xlrd.open_workbook(r'car.xlsx')
sheet = car.sheet_by_name('小车')
sheet2 = car.sheet_by_name('大车')

check =Check()
check.run()




check2.0.rar (9.89 KB, 下载次数: 440)



免费评分

参与人数 6吾爱币 +8 热心值 +5 收起 理由
soscash + 1 + 1 谢谢@Thanks!
cccyyys + 1 + 1 谢谢@Thanks!
zx5706112 + 1 + 1 谢谢@Thanks!
回到大唐 + 1 + 1 下载试试看
我超可怜 + 1 + 1 谢谢@Thanks!
pwp + 3 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fastnife 发表于 2022-8-9 08:17
好东西啊
112baiyun 发表于 2021-3-3 18:50
pwp 发表于 2021-3-3 18:18
miqi1314 发表于 2021-3-3 18:19
大佬,厉害,能把违规的高清图片爬下来就更好了😁
lin2509 发表于 2021-3-3 18:45
不错不错 
szw206 发表于 2021-3-3 19:05
PY打不开啊
lovedou0816 发表于 2021-3-3 19:26
本帖最后由 lovedou0816 于 2021-3-3 20:53 编辑

打开后一闪而过。。。同样因为查违章特别烦恼,谢谢大神了
吾爱蛋蛋 发表于 2021-3-3 19:36
能把违规的图片趴下了就好了
头像被屏蔽
benq7378 发表于 2021-3-3 19:59
提示: 作者被禁止或删除 内容自动屏蔽
laohuangcs666 发表于 2021-3-3 20:03
太牛了,这都行!!!谢谢大佬!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表