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编写一个图片主色转换的脚本
Dec 07 Python
Python之读取TXT文件的方法小结
Apr 27 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
Django框架使用mysql视图操作示例
May 15 Python
Python调用C语言的实现
Jul 26 Python
Python Django 添加首页尾页上一页下一页代码实例
Aug 21 Python
python实现超市商品销售管理系统
Oct 25 Python
python实现七段数码管和倒计时效果
Nov 23 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 24 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函数microtime()用法与说明
2013/12/04 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
javascript运动详解
2015/07/06 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
一篇不错的Python入门教程
2007/02/08 Python
使用python Django做网页
2013/11/04 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
python实现随机漫步方法和原理
2019/06/10 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
理货员的岗位职责
2013/11/23 职场文书
运动会入场词60字
2014/02/15 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
政府四风问题整改措施
2014/10/04 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
三孔导游词
2015/02/05 职场文书
关于教师节的广播稿
2015/08/19 职场文书
Python基础知识学习之类的继承
2021/05/31 Python