python正则匹配查询港澳通行证办理进度示例分享


Posted in Python onDecember 27, 2013
import socket
import re
'''
广东省公安厅出入境政务服务网护照,通行证办理进度查询。
分析网址格式为 http://www.gdcrj.com/wsyw/tcustomer/tcustomer.do?&method=find&applyid=身份证号码
构造socket请求网页html,利用正则匹配出查询结果
'''
def gethtmlbyidentityid(identityid):
 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 host = 'www.gdcrj.com';
 suburl = '/wsyw/tcustomer/tcustomer.do?&method=find&applyid={0}'
 port = 80;
 remote_ip = socket.gethostbyname(host)
 s.connect((remote_ip , port))
 print('【INFO】:socket连接成功')
 message = 'GET '+ suburl.format(identityid) +' HTTP/1.1\r\nHost: '+ host +'\r\n\r\n'
 # str 2 bytes
 m_bytes = message.encode('utf-8')
 # send bytes
 s.sendall(m_bytes)
 print('【INFO】:远程下载中...')
 recevstr = ''
 while True:
  # return bytes
  recev = s.recv(4096)
  # bytes 2 str
  recevstr += recev.decode(encoding = 'utf-8', errors = 'ignore')
  if not recev:
   s.close()
   print('【INFO】:远程下载网页完成')
   break
 return recevstr
'''
利用正则表达式从上步获取的网页html内容里找出查询结果
'''
def getresultfromhtml(htmlstr):
 linebreaks = re.compile(r'\n\s*')
 space = re.compile('( )+')
 resultReg = re.compile(r'\<td class="news_font"\>([^<td]+)\</td\>', re.MULTILINE)
 #去除换行符和空格
 htmlstr = linebreaks.sub('', htmlstr)
 htmlstr = space.sub(' ', htmlstr)
 #匹配出查询结果
 result = resultReg.findall(htmlstr)
 for res in result:
  print(res.strip())
if __name__ == '__main__':
 identityid = input('输入您的身份证号码(仅限广东省居民查询):')
 try:
  identityid = int(identityid)
  print('【INFO】:开始查询')
  html = gethtmlbyidentityid(identityid)
  getresultfromhtml(html)
  print('【INFO】:查询成功')
 except:
  print('【WARN】:输入非法')
 input('【INFO】:按任意键退出')
Python 相关文章推荐
深入理解Python变量与常量
Jun 02 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
Python 登录网站详解及实例
Apr 11 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
python验证码识别实例代码
Feb 03 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
python实现超简单的视频对象提取功能
Jun 04 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
python模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 #Python
python读文件逐行处理的示例代码分享
Dec 27 #Python
python调用cmd复制文件代码分享
Dec 27 #Python
win7安装python生成随机数代码分享
Dec 27 #Python
python正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 #Python
python正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 #Python
python正则表达式判断字符串是否是全部小写示例
Dec 25 #Python
You might like
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
自定义php类(查找/修改)xml文档
2013/03/26 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
初探nodeJS
2017/01/24 NodeJs
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
Python 面向对象 成员的访问约束
2008/12/23 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
使用python实现飞机大战游戏
2020/03/23 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
纺织工程专业推荐信
2014/09/08 职场文书
三八妇女节标语
2014/10/09 职场文书
2015公司年度工作总结
2015/05/14 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
初一军训感言
2015/08/01 职场文书