Python对于文本处理简单、直观。
任务:想返回一个网页的全部标题的文本行到一个文本文件。
在网页文件的源代码中,页面的标题都是用诸如<h4>……</h4>(后面的数字可以是1-6中任意数字)来标识的,要把这样的行提取出来,并将诸如<h4>或</h4>替换为空白,如果用文本的find()和replace()方法操作,则需要列举六种情况,但如果用正则表达式的findall()和sub()方法,则无需列举。
具体看代码:
import re temp = open('h4.txt','w',encoding="UTF-8") tag = re.compile(r'<h\d>')............# 可以直接写成tag = r'<h\d>' endtag = re.compile(r'</h\d>') with open('original.txt','rU',encoding="UTF-8") as f: ....for line in f.readlines():........ # 返回单行(段落)string ........#if line.startswith("h4"): ........#if line.find("h4") != -1:.... # 返回开始位置,否则返回-1 ........list1 = re.findall(tag,line) ........if list1!=[]: ............#str = line.replace("h4","") ............str = re.sub(tag,"",line) ............str = re.sub(endtag,"",str) ............temp.write(str) temp.close() # 也可以将文件内容做为一个字符串返回,利用以下正则表达式及查找返回一个列表: # res = r'<div>.*?</div>' # 使用非贪婪模式 print("finished!") import win32api win32api.ShellExecute(0,'open',"h4.txt",'','',1)
original.html中所有含有诸如<h4>……</h4>标签的文本行都提取到h4.txt文件中,并将这些html标签代码替换为空白。
-End-