boss发了几百个网页url过来,要求把与某某人有关的信息筛选出来。
用之前写的HttpRead(简介和下载地址在本文末属)将这些网页url内容读取出来,再做关键字搜索可以完成,但是效率实在是有点低。
研究了一下,发现从网页的标题(Title)就可以判断是否包含某某人的信息,也就是只要读取网页的标题(Title),就可以进行筛选了。
由于对网页的处理要用到正则表达式,而HttpRead是用MASM32编写的,不直接支持正则表达式,要作相应的修改不是一下子就能搞定的,于是拿现在流行的Python来试了一下。现在Python的编程资料很多,现学现用^_^
# -*- coding:UTF-8 -*- import urllib.request import re #url = 'http://bing.com' url ='http://www.mengxi.net/book/263745/index.html' page = urllib.request.urlopen(url,data = None) html = page.read().decode('utf-8') # or html=urllib.urlopen(url).read() #print (html) # Python3 findall数据类型用bytes类型 #方法1:无法读取包含\r\n\t的标题文本 title = re.findall(r'',html) print (title) #方法2:无法过滤换行符 con = re.findall(r'', html, re.S|re.M) print (con) #方法3 tag = 'title' tag_pat = r'(?<=<'+ tag + '>).*?(?=</' + tag + '>)' tag_ex = re.compile(tag_pat, re.M|re.S) tag_obj = re.search(tag_ex, html) con = tag_obj.group() print (con)
运行情况如下:
#D:\Python34\works>py title.py
#[]
#['\r\n\t续蜀山剑侠传最新章节首家独发 - 风叶如笛 - 武侠仙侠 - 梦溪文学网\r\n']
#
# 续蜀山剑侠传最新章节首家独发 - 风叶如笛 - 武侠仙侠 - 梦溪文学网
从运行结果来看,方法3返果的结果比较好。不过还要做进一步的过滤,比如前面的空格。