您正在使用正则表达式,并且将与此类表达式匹配的HTML变得太复杂,太快。
取而代之的是使用HTML解析器,Python有多种选择。我建议您使用BeautifulSoup,这是一个受欢迎的3rd
party库。
BeautifulSoup示例:
from bs4 import BeautifulSoupresponse = urllib2.urlopen(url)soup = BeautifulSoup(response.read(), from_encoding=response.info().getparam('charset'))title = soup.find('title').text
由于
title标签本身不包含其他标签,因此可以在此处使用正则表达式,但是一旦尝试解析嵌套标签, 就会 遇到非常复杂的问题。
您可以通过匹配
title标记中的其他字符来解决您的特定问题,可以选择:
r'<title[^>]*>([^<]+)</title>'
匹配0个或多个 不是 右
>括号的字符。此处的“ 0或更多”可让您同时匹配额外的属性和纯
<title>标签。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)