使用正则表达式提取网页中的表格信息

http://pan.baidu.com/s/1eQkkmxc源文件在这这是一个html空教室信息表格,我想把里面的信息提取出来。逐行的处理表格,比如返回{教室101;有... http://pan.baidu.com/s/1eQkkmxc
源文件在这

这是一个html 空教室信息表格,我想把里面的信息提取出来。
逐行的处理表格,比如返回 {教室101;有课,没课,有课,有课,。。。}(仅仅是演示,就是返回程序能识别的形式,而不是这种人能看懂的表格,我知道转换一下的)

最好是使用正则表达式直接处理(python语句的形式),或者是python的lxml库,因为在云服务器上,可能不好安装别的库。
十分感谢~~
如果有比正则表达式更好的办法,也可以的~~~谢谢了~~
展开
 我来答
豆杂谈
2013-12-24 · 闲来无事,谈谈一些事情,可能你会认可。
豆杂谈
采纳数:78 获赞数:302

向TA提问 私信TA
展开全部

由于不会弄程序只会正则表达式因此只能给你提供一下正则表达式了,不过你会程序,这个问题就会变得很简单了。我将所有的东西用正则表达式匹配出来,你输出之后用程序做个替换就可以实现你要的那种效果了。

正则:<tr style="display:" id="tr\d+"[^>]*?>\s*<td>([^<]*?)</td>[\s\S]+?<tr align="center" >[\s\S]+?<tr align="center" >\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>\s*<td[^>]*?>(?:<a href="#" title="[^"]*?"><font color="#\w+">|)([\s\S]*?)(?:</font></a>|)</td>

图片:

从图片里面不难看出,将所有的项都匹配出来了。之后你按照顺序输出捕获组1-11就是你要的那些结果,在输出的时候可以按照你需要的格式来进行输出。

输出完成之后做一个替换就可以了如果是&nbsp;替换成没有课,如果是小黑点,替换成有课,就OK了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式