python编程获取网页标题title的几种方法及效果对比(源代码)
Posted 紫郢剑侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python编程获取网页标题title的几种方法及效果对比(源代码)相关的知识,希望对你有一定的参考价值。
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返果的结果比较好。不过还要做进一步的过滤,比如前面的空格。
附:
HttpRead简介:
HttpRead下载地址:HttpRead-0_0_0001-Beta4-Web开发文档类资源-CSDN文库https://download.csdn.net/download/Purpleendurer/417232
以上是关于python编程获取网页标题title的几种方法及效果对比(源代码)的主要内容,如果未能解决你的问题,请参考以下文章
Python编程系列---Python中装饰器的几种形式及万能装饰器