使用python 2.7我试图从页面中抓取标题,但如果我找到其中一个字符,则在结束标题标记之前将其剪掉:.- _< | (因为我只是想获得公司/网站的名称)我有一些代码可以工作,但我确信必须有一个更简单的方法。我对图书馆的建议(美丽的汤,斗志等)持开放态度,但我很乐意这样做,因为我很高兴现在慢慢地学习python。您可以看到我的代码单独搜索每个字符而不是一次搜索所有字符。我希望有一个find(x或x)函数,但我找不到。稍后我也将做同样的事情,但寻找0-9范围内的任何数字。
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [{'User-agent' , 'Mozilla/5.0'}]
def findTitle(webaddress):
url = (webaddress)
ourUrl = opener.open(url).read()
ourUrlLower = ourUrl.lower()
x=0
positionStart = ourUrlLower.find("<title>",x)
if positionStart == -1:
return "Insert Title Here"
endTitleSignals = ['.',',','-','_','@','+',':','|','<']
positionEnd = positionStart + 50
for e in endTitleSignals:
positionHolder = ourUrlLower.find(e ,positionStart + 1)
if positionHolder < positionEnd and positionHolder != -1:
positionEnd = positionHolder
return ourUrl[positionStart + 7:positionEnd]
print findTitle('http://www.com)
答案 0 :(得分:0)
正则表达式库(re)可以提供帮助,但是如果你想了解更多关于一般python而不是专业库的知识,你可以用sets
来做,这是你想要知道的约。
import sets
string = "garbage1and2recycling"
charlist = ['1', '2']
charset = sets.Set(charlist)
index = 0
for index in range(len(string)):
if string[index] in charset: break
print(index) # 7
请注意,您可以仅使用charlist
代替charset
执行上述操作,但这需要更长时间才能运行。