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写的创建文件夹自定义函数mkdir()
Aug 25 Python
python的mysqldb安装步骤详解
Aug 14 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
pycharm 配置远程解释器的方法
Oct 28 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
Dec 27 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
Django项目后台不挂断运行的方法
Aug 31 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
Python分析最近大火的网剧《隐秘的角落》
Jul 02 Python
matplotlib相关系统目录获取方式小结
Feb 03 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 Python
python异常中else的实例用法
Jun 15 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
js获取视频时长代码
2014/04/10 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
python连接oracle数据库实例
2014/10/17 Python
Python的设计模式编程入门指南
2015/04/02 Python
python中dir函数用法分析
2015/04/17 Python
python创建临时文件夹的方法
2015/07/06 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python实现最短路径的实例方法
2020/07/19 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
尊师重教演讲稿
2014/09/04 职场文书
群众路线个人整改方案
2014/10/25 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
php双向队列实例讲解
2021/11/17 PHP