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完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
Python列表计数及插入实例
Dec 17 Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
解决Python中由于logging模块误用导致的内存泄露
Apr 23 Python
100行Python代码实现自动抢火车票(附源码)
Jan 11 Python
python爬取淘宝商品详情页数据
Feb 23 Python
Python列表生成式与生成器操作示例
Aug 01 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
python实现连连看辅助(图像识别)
Mar 25 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
Python实现仓库管理系统
May 30 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
CI框架中zip类应用示例
2014/06/17 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
详解Django通用视图中的函数包装
2015/07/21 Python
Python编码类型转换方法详解
2016/07/01 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
Python实现Linux监控的方法
2019/05/16 Python
python deque模块简单使用代码实例
2020/03/12 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
Python更换pip源方法过程解析
2020/05/19 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
优秀团员个人事迹材料
2014/01/29 职场文书
旅游个人求职信范文
2014/01/30 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL