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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
Python调用shell命令常用方法(4种)
May 11 Python
Python如何实现的二分查找算法
May 27 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
Python中过滤字符串列表的方法
Dec 22 Python
python requests模块的使用示例
Apr 07 Python
pytorch 实现变分自动编码器的操作
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数组
2006/10/09 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
非常漂亮的js烟花效果
2020/03/10 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
wxPython学习之主框架实例
2014/09/28 Python
Python数据类型学习笔记
2016/01/13 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
编写python代码实现简单抽奖器
2020/10/20 Python
python如何调用php文件中的函数详解
2020/12/29 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
2014年自我评价
2014/01/04 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
物业接待员岗位职责
2015/04/15 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书