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爬虫框架Scrapy安装使用步骤
Apr 01 Python
Python 专题三 字符串的基础知识
Mar 19 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 Python
python使用装饰器作日志处理的方法
Jul 11 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
python实现输入任意一个大写字母生成金字塔的示例
Oct 27 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
浅谈Django前端后端值传递问题
Jul 15 Python
python - asyncio异步编程
Apr 06 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 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公用函数列表[正则]
2007/02/22 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
js闭包用法实例详解
2016/12/13 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
Promise扫盲贴
2019/06/24 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
Django如何批量创建Model
2020/09/01 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
客服文员岗位职责
2013/11/29 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
公司处罚决定书
2015/06/24 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python