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生成随机数的方法
Jan 14 Python
ptyhon实现sitemap生成示例
Mar 30 Python
python图像处理之镜像实现方法
May 30 Python
Python实现批量将word转html并将html内容发布至网站的方法
Jul 14 Python
Python实现一个转存纯真IP数据库的脚本分享
May 21 Python
Python中getpass模块无回显输入源码解析
Jan 11 Python
Python实现代码统计工具
Sep 19 Python
python计算无向图节点度的实例代码
Nov 22 Python
Python运行异常管理解决方案
Mar 09 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
使用python对excel表格处理的一些小功能
Jan 25 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 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
用PHP解决的一个栈的面试题
2014/07/02 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
点击广告后才能获得下载地址
2006/10/26 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
带你认识Django
2019/01/15 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
保险经纪人求职信
2014/03/11 职场文书
支部书记四风对照材料
2014/08/28 职场文书
专家推荐信范文
2015/03/26 职场文书
出国留学单位推荐信
2015/03/26 职场文书
财务统计员岗位职责
2015/04/14 职场文书
2016大学军训心得体会
2016/01/11 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL