Python 使用urllib获取标题

Python 使用urllib获取标题,python,urllib,Python,Urllib,我应该写一个代码,进入一个网站,并得到它的标题,所以这里是我的代码 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 o

我应该写一个代码,进入一个网站,并得到它的标题,所以这里是我的代码

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))
导入urllib.request
def findTitle(url):
urllib.request.request(url)
#打开url
urllib.request.urlopen(url)
urllib.request.urlopen(url.read().decode('utf-8'))
#将同一变量设置为标记的结尾
endTitlePos=url.find(“”)
#将变量设置为标签的起始位置
startTitlePos=url.find(“,endTitlePos)
startTitlePos+=len(“”)
#将新变量设置为
TitleContent=url.find(“,startTitlePos)
#返回两个变量之间的输出片段
title=url[startTitlePos:endTitlePos]
内容列表=[]
内容列表。附加(标题)
返回内容列表
def main():
url=”https://google.com/search"
打印(findTitle(url))
main()


我们以谷歌为例。现在它应该只打印“google”,但现在它打印“['//google.com/searc']”我只是好奇我在这里遗漏了什么,我的意思是它看起来很简单,但我不知道为什么它要打印url而不是标题,以及如何将它从列表中转换成字符串?

有几种方法可以从网页获取数据。最好的使用方法是美容。在您的例子中,string 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
导入urllib.request
def findTitle(url):
webpage=urllib.request.urlopen(url.read())
title=str(网页)。拆分(“”)[1]。拆分(“”)[0]
返回标题
>>>打印(findTitle('http://www.google.com'))
谷歌

从网页获取数据有几种方法。最好的使用方法是美容。在您的例子中,string 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
导入urllib.request
def findTitle(url):
webpage=urllib.request.urlopen(url.read())
title=str(网页)。拆分(“”)[1]。拆分(“”)[0]
返回标题
>>>打印(findTitle('http://www.google.com'))
谷歌

我明白了这种方法的工作原理,非常感谢。我很好奇他们用给我们的骨架到底想干什么。我的意思是我在问为什么我的代码找不到真正的标题?它似乎只是跟踪了url,然后显示了它。在您的代码中,只需将3语句更改为urllib.request.urlopen(url.read(),我知道这个方法是如何工作的,非常感谢。我很好奇他们用给我们的骨架到底想干什么。我的意思是我在问为什么我的代码找不到真正的标题?它似乎只是跟踪了url,然后显示了它。在代码中,只需将3语句更改为urllib.request.urlopen(url.read())