python结合selenium获取XX省交通违章数据的实现思路及代码


Posted in Python onJune 26, 2016

前言:

目前在研究易信公众号,想给公众号增加一个获取个人交通违章的查询菜单,通过点击返回查询数据。以下是实施过程。

一、首先,用火狐浏览器打开XX省交管网,分析页面信息:

python结合selenium获取XX省交通违章数据的实现思路及代码

可以看到共有4种查询种类,我只要查询违章数据,所以分析第一个电子警察信息查询就好了,用firebug分别查看车牌号码、车辆识别码、验证码输入框,可以得到id属性,分别为:carNum1、carAuthCode1、captcha1。

到这里,我们可以用selenium根据获取的id,自动填入车牌号码、车辆识别码、验证码,但验证码如何获取呢?。

二、获取验证码

第一次、通过Tesseract识别

经过测试,识别率太低了,不可行。

第二次、通过cookies查找验证码

通过查看服务器返回的cookies,发现里面竟然有验证码。。。

 python结合selenium获取XX省交通违章数据的实现思路及代码

三、编写程序测试

1、流程图和测试结果

python结合selenium获取XX省交通违章数据的实现思路及代码python结合selenium获取XX省交通违章数据的实现思路及代码

2、源代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class JTWZ():
def __init__(self,carAuthCode,carNum):
"""
carAuthCode:车辆识别码
carNum:车牌号
"""
self.driver = webdriver.Chrome()
self.url = 'http://xxcx.hbsjg.gov.cn:8087/hbjj/'
self.carAuthCode=carAuthCode
self.carNum=carNum
def get_content(self):
self.driver.get(self.url)
try:
element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "checkCode1")))
print(u'开始登录...')
except Exception as e:
print(e) 
self.carNum1 = self.driver.find_element_by_id('carNum1')
self.carNum1.send_keys(self.carNum)
self.carAuthCode1 = self.driver.find_element_by_id('carAuthCode1')
self.carAuthCode1.send_keys(self.carAuthCode)
captcha1=self.driver.find_element_by_id('captcha1')
#从cookies找寻验证码
for n in self.driver.get_cookies():
if n.get('name')!=None and n['name']=='RANDOMVALIDATECODEKEY1':
checkCode1=n['value']
captcha1.send_keys(checkCode1)
sub=self.driver.find_element_by_xpath("//input[@value='开始查询']")
sub.click()
try:
element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "fsmiddle")))
print(u'获取违章内容成功,保存为:wz.jpg...')
self.driver.save_screenshot('wz.jpg')
return 0
except:
print(u'获取失败...') 
return 1
finally:
self.driver.quit()
if __name__ == '__main__':
jtwz=JTWZ(carAuthCode=000,carNum='')
jtwz.get_content()
Python 相关文章推荐
tensorflow 加载部分变量的实例讲解
Jul 27 Python
python读取Excel实例详解
Aug 17 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
django中间键重定向实例方法
Nov 10 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
基于python调用psutil模块过程解析
Dec 20 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
零基础小白多久能学会python
Jun 22 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 Python
python Protobuf定义消息类型知识点讲解
Mar 02 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 #Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 #Python
Python的装饰器用法学习笔记
Jun 24 #Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 #Python
深入解析Python编程中super关键字的用法
Jun 24 #Python
深入了解Python数据类型之列表
Jun 24 #Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 #Python
You might like
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
PHP中文编码小技巧
2014/12/25 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
Python定时任务sched模块用法示例
2018/07/16 Python
python实现朴素贝叶斯算法
2018/11/19 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
django框架两个使用模板实例
2019/12/11 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
物业管理员岗位职责范文
2013/11/25 职场文书
运动会表扬稿大全
2014/01/16 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
保险内勤岗位职责
2014/04/05 职场文书
世界环境日活动总结
2015/02/11 职场文书
全陪导游词开场白
2015/05/29 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python