我应该写一个代码进入一个网站并得到它的标题所以这里是我的代码
import urllib.request
def findTitle(url):
urllib.request.Request(url)
#open url
urllib.request.urlopen(url)
urllib.request.urlopen(url).read().decode('utf-8')
#set same variable equal to the end of <title> tag
endTitlePos = url.find("<title>")
#set variable equal to starting position of <title> tag
startTitlePos = url.find("<title>", endTitlePos)
startTitlePos += len("<title>")
#set new variable equal to </title>
TitleContent=url.find("</title>",startTitlePos)
#return slice of output between the two variables
title = url[startTitlePos:endTitlePos]
content_list=[]
content_list.append(title)
return content_list
def main():
url="https://google.com/search"
print(findTitle(url))
main()的
我们使用谷歌作为一个例子。现在它应该只打印“谷歌”,但目前它打印“['//google.com/searc']”我只是好奇我在这里失踪,我的意思是它似乎很简单,但我不知道为什么它的打印url而不是标题,我怎么把它从列表转换成字符串?
答案 0 :(得分:2)
从网页获取数据有几种替代方法。最好用的是BeautifulSoup。在你的情况下,字符串split()方法效果很好
import urllib.request
def findTitle(url):
webpage = urllib.request.urlopen(url).read()
title = str(webpage).split('<title>')[1].split('</title>')[0]
return title
>>>print(findTitle('http://www.google.com'))
Google