- 论坛徽章:
- 0
|
我要提取 一个html 文件中 大致 格式是- <UL><FONT SIZE=5>新学期在即,为了贯彻执行学校教材发放管理的工作要求,保证学校正常教学秩序。我教材中心已按照学校教务处下学期工作、计划和各院老师的要求,给全校学生准备了春季开学所需用的教材,请同学们在</FONT><FONT SIZE=5 FACE="Times New Roman">2</FONT><FONT SIZE=5>月</FONT><FONT SIZE=5 FACE="Times New Roman">12</FONT><FONT SIZE=5>日(周日),集体到教材中心直接领取或购买教材,价格优惠。希望各院辅导员通知各班长或学委,协助配合。如不清楚请尽快与我们联系。</FONT><BR>
- <FONT SIZE=5>办公地点:学五楼地下一层,教材中心办公室</FONT><BR>
复制代码 中的中文
我写的 python代码是
其中我的正则还没有写好,先测试下能否提取网页内容,对于如上的格式 应该如何提取 ,我最初的的想法是 得到 <font ></font> 标签的元祖,然后我会用 strip_tags 函数去掉html 标签,然后得到正文- # encoding:utf-8
- from BeautifulSoup import BeautifulSoup # For processing HTML
- import urllib2
- import os
- import sys
- import re
- def strip_tags(html):
- """
- Python中过滤HTML标签的函数
- >>> str_text=strip_tags("<font color=red>hello</font>")
- >>> print str_text
- hello
- """
- from HTMLParser import HTMLParser
- html = html.strip()
- html = html.strip("\n")
- result = []
- parser = HTMLParser()
- parser.handle_data = result.append
- parser.feed(html)
- parser.close()
- return ''.join(result)
- # re_match_str = '(<FONT|<TITLE)[a-zA-Z]*>[A-Za-z0-9]*</(FONT|TITLE)>'
- re_match_str = '<FONT\s*\S*>[a-zA-Z]*'
- fp = open('1.htm','r')
- #fp = urllib2.urlopen('http://www.bupt.edu.cn/')
- html = fp.read()
- #htmp_utf = unicode(html, "gbk").encode("utf8")
- soup = BeautifulSoup(html)
复制代码 但是结果出现 '<FONT SIZE=5>\xe5\x8a\x9e\xe5\x85\xac\xe5\x9c\xb0\xe7\x82\xb9\xef\xbc\x9a\xe5\xad\xa6\xe4\xba\x94\xe6\xa5\xbc\xe5\x9c\xb0\xe4\xb8\x8b\xe4\xb8\x80\xe5\xb1\x82\xef\xbc\x8c\xe6\x95\x99\xe6\x9d\x90\xe4\xb8\xad\xe5\xbf\x83\xe5\x8a\x9e\xe5\x85\xac\xe5\xae\xa4</FONT><BR>', '<FONT SIZE=5>\xe6\x9c\x88</FONT>', '<FONT SIZE=5>\xe6\x97\xa5\xef\xbc\x8c</FONT>', '<FONT SIZE=5>\xef\xbc\x9a</FONT>', '<FONT SIZE=5>\xe2\x80\x94\xe2\x80\x94</FONT>', '<FONT SIZE=5>\xef\xbc\x9a</FONT>', '<FONT SIZE=5>\xe6\x9c\x88</FONT>', '<FONT SIZE=5>\xe6\x97\xa5\xe6\xad\xa3\xe5\xb8\xb8\xe6\x97\xb6\xe9\x97\xb4\xe5\x8a\x9e\xe5\x85\xac</FONT><BR>', '<FONT SIZE=5>\xe7\x94\xb5</FONT>', '<FONT SIZE=5>\xe8\xaf\x9d\xef\xbc\x9a</FONT>', '<FONT SIZE=5>\xef\xbc\x8c</FONT>', '<FONT SIZE=5>\xe8\x81\x94</FONT>', '<FONT SIZE=5>\xe7\xb3\xbb</FONT>', '<FONT SIZE=5>\xe4\xba\xba\xef\xbc\x9a\xe6\x9d\x8e\xe8\x80\x81\xe5\xb8\x88</FONT><BR>'
应该如何解决
|
|