这里简短的总结一下而不是完全的罗列python的re模块,python的re具有强大的功能,如下是一个从我们学校抓取数据然后拆分的程序,代码如下:

import httplib
import urllib
import re
import sys
reload(sys) sys.setdefaultencoding("utf-8") parameters = "__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=%2FwEPDwUKLTYwNjgwNDAyOQ8WBB4Jcm9vbXRhYmxlBQ9qZGRhdGFfcm9vbXZpZXceCWRhdGF0YWJsZQULamRkYXRhX3ZpZXcWAgIDD2QWBgIDDxBkZBYBAgFkAgUPEA8WBB4NRGF0YVRleHRGaWVsZAUIUk9PTU5BTUUeC18hRGF0YUJvdW5kZ2QQFRIPMDflj7flhazlr5MgICAgDzA45Y%2B35YWs5a%2BTICAgIA8wOeWPt%2BWFrOWvkyAgICAPMTDlj7flhazlr5MgICAgDzEy5Y%2B35YWs5a%2BTICAgIA8xM%2BWPt%2BWFrOWvkyAgICAPMTTlj7flhazlr5MgICAgDzE15Y%2B35YWs5a%2BTICAgIA8xNuWPt%2BWFrOWvkyAgICAPMTflj7flhazlr5MgICAgDzE45Y%2B35YWs5a%2BTICAgIA4xOeWPt%2BalvCAgICAgIA4yMOWPt%2BalvCAgICAgIA7mnKznp5E0ICAgICAgIA7mnKznp5E1ICAgICAgIA7mnKznp5E2ICAgICAgIA7noJTnqbYyICAgICAgIA7noJTnqbYzICAgICAgIBUSDzA35Y%2B35YWs5a%2BTICAgIA8wOOWPt%2BWFrOWvkyAgICAPMDnlj7flhazlr5MgICAgDzEw5Y%2B35YWs5a%2BTICAgIA8xMuWPt%2BWFrOWvkyAgICAPMTPlj7flhazlr5MgICAgDzE05Y%2B35YWs5a%2BTICAgIA8xNeWPt%2BWFrOWvkyAgICAPMTblj7flhazlr5MgICAgDzE35Y%2B35YWs5a%2BTICAgIA8xOOWPt%2BWFrOWvkyAgICAOMTnlj7fmpbwgICAgICAOMjDlj7fmpbwgICAgICAO5pys56eRNCAgICAgICAO5pys56eRNSAgICAgICAO5pys56eRNiAgICAgICAO56CU56m2MiAgICAgICAO56CU56m2MyAgICAgICAUKwMSZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZGQCFQ88KwANAGQYAQUJR3JpZFZpZXcxD2dks72pwRhFZXy7shqK0FV%2BHo%2BV6xw%3D&__EVENTVALIDATION=%2FwEWIwLCqrCECgKehO%2FXDgKS2sqQDQKbhO%2FXDgLvo6%2FWAQKchO%2FXDgKco5mFBAKo7ZuOCQKQtOGrAwLGtc2eAwKUkP3jDgKphpG2AgL3ot33AgL3ov2mCALP9anUDQLO9e2UAQLO9fEwAsHtjeQDAsHtlaACAsHtmdwCAsHtnfwCAs7toZgNAs7tpbgNAs7tqdQNAsHt7ZQBApnz9msChpiS3QMCtcKkWgL%2BhMCpBAK7ovXVAwLVvLqTBQKewdn%2BDgLeuZHECgK8w4S2BAKjm5WMBhrpaK%2FPVR7L%2BngMlHOw%2B5OLj989&DistrictDown=%E5%98%89%E5%AE%9A%E6%A0%A1%E5%8C%BA&BuildingDown=12%E5%8F%B7%E5%85%AC%E5%AF%93++++&RoomnameText="+sys.argv[1]+"&Submit=%E6%9F%A5%E8%AF%A2" headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"} conn = httplib.HTTPConnection("nyglzx.tongji.edu.cn") conn.request("POST","/web/datastat.aspx",parameters,headers) response = conn.getresponse() print response.status,response.reason result = response.read() pattern = r'<td><font color="Black">\d+-\d+-\d+</font></td><td><font color="Black">\d+,\d+.\d+</font></td><td><font color="Black">\d+,\d+.\d+</font></td><td><font color="Black">\d+.\d+</font></td>' matchs = re.findall(pattern,result) pattern = r'<td><font color="Black">(\d+-\d+-\d+)</font></td><td><font color="Black">(\d+,\d+.\d+)</font></td><td><font color="Black">(\d+,\d+.\d+)</font></td><td><font color="Black">(\d+.\d+)</font></td>' for i in matchs:
tm = re.match(pattern, i)
print tm.group(1),tm.group(2),tm.group(3),tm.group(4)

  这里面的re模块主要用到了两个,一个是result = re.match(pattern,content), 通过result.group(1:n)来访问pattern中以()括起来的内容。另一个是result = re.findall(pattern,content),它的结果用for来访问或者result[index]来访问即可了。

使用python进行re拆分网页内容的更多相关文章

  1. Python - 将iterable拆分成等长的数据块

    说明 看文档发现一个有趣的应用(利用zip函数) 例如[1, 2, 3, 4] --> [(1, 2), (3, 4)],拆分成长度为2的数据块 Code >>> a = [1 ...

  2. Python技法-序列拆分

    Python中的任何序列(可迭代的对象)都可以通过赋值操作进行拆分,包括但不限于元组.列表.字符串.文件.迭代器.生成器等. 元组拆分 元组拆分是最为常见的一种拆分,示例如下: p = (4, 5) ...

  3. 初识python 之 自动拆分转换文本内容

    上一篇升级版,转换文件内容. #!/user/bin env python # author:Simple-Sir # time:2021/7/9 23:32 def txt_2_list(filen ...

  4. python中字符串拆分与合并——split()、join()、strip()和replace()

    Python3 split()方法 描述split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串 语法split()方法语法: str.split(str= ...

  5. Chrome + Python 抓取动态网页内容

    用Python实现常规的静态网页抓取时,往往是用urllib2来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字.如下所示: import urllib2 url="http: ...

  6. python 将GIF拆分成图片方法

    import os from PIL import Image, ImageSequence def parseGIF(gifname): # 将gif解析为图片 # 读取GIF im = Image ...

  7. python序列的拆分

    1 变量个数和序列长度相等 使用赋值语句可以将序列拆分,然后赋值给多个变量,形式如下: 变量1,变量2,...,变量n = 序列或可迭代对象 若变量个数和序列的元素个数不一致,将导致ValueErro ...

  8. 教你Python字符串的基本操作:拆分和连接

    摘要:由于字符串数据几乎无处不在,因此掌握有关字符串的交易工具非常重要.幸运的是,Python 使字符串操作变得非常简单,尤其是与其他语言甚至旧版本的 Python 相比时. 本文分享自华为云社区&l ...

  9. Python爬虫下载美女图片(不同网站不同方法)

    声明:以下代码,Python版本3.6完美运行 一.思路介绍 不同的图片网站设有不同的反爬虫机制,根据具体网站采取对应的方法 1. 浏览器浏览分析地址变化规律 2. Python测试类获取网页内容,从 ...

随机推荐

  1. objectdatasouce的温故

    在做ecxel的时候,需要前台做一个联动的效果. 记录一下这个数据源的用法,大学时候用的,忘得差不多了 首先就是往页面拖拽一个objectdatasouce的控件 然后配置数据源: 选择业务对象(其实 ...

  2. C#遍历/反射 属性/字段

    public static string SortParam<T>(T t) { string tStr = string.Empty; if (t == null) { return s ...

  3. nim游戏解法(转)

    转自:http://acm.hdu.edu.cn/forum/read.php?fid=9&tid=10617 取火柴的游戏 题目1:今有若干堆火柴,两人依次从中拿取,规定每次只能从一堆中取若 ...

  4. 团体程序设计天梯赛-练习集-L1-030. 一帮一

    L1-030. 一帮一 “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后, ...

  5. BZOJ 1984月下“毛景树” LCT维护边权 + 下传标记

    Description 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园. 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里.爬啊爬~爬啊爬~~毛毛虫爬到了一颗小小的“毛景树” ...

  6. Android 性能测试初探(一)

    Android 性能测试,跟 pc 性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试 一类为应用的性能测试 对于应用性能测试,包括很多测试项,如启动 ...

  7. JDBC对MySQL数据库存储过程的调用

    一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用 ...

  8. eas之日期选择控件

    初始化打印控件KDPrinter ctrlPrinter = new KDPrinter(); 增加列 // 指定插入位置table.addColumn(index);// 插入到最后table.ad ...

  9. js中call、apply、bind的区别

    var Person = { name : 'alice', say : function(txt1,txt2) { console.info(txt1+txt2); console.info(thi ...

  10. [tyvj1957 Poetize5] Vani和Cl2捉迷藏 (最小路径可重点覆盖+二分图最大匹配)

    传送门 Description 这片树林里有N座房子,M条有向道路,组成了一张有向无环图. 树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔.如果从房子A沿着路走下去能够到达B,那么在 ...