Python:find on string返回none

Python:find on string返回none,python,beautifulsoup,urllib2,Python,Beautifulsoup,Urllib2,我正在做一个解析HTML页面的项目。这是一个公司内部的网站,但我改变了例子,所以你可以尝试 我获取HTML页面的源代码,然后搜索特定的标记。然后我想提取这个标记的子字符串,但它不起作用。Python返回一个none。。。下面是我的代码,在Python的返回中有注释: #!/usr/bin/python import urllib2 from bs4 import BeautifulSoup response = urllib2.urlopen("http://www.resto.be/rest

我正在做一个解析HTML页面的项目。这是一个公司内部的网站,但我改变了例子,所以你可以尝试

我获取HTML页面的源代码,然后搜索特定的标记。然后我想提取这个标记的子字符串,但它不起作用。Python返回一个none。。。下面是我的代码,在Python的返回中有注释:

#!/usr/bin/python
import urllib2
from bs4 import BeautifulSoup

response = urllib2.urlopen("http://www.resto.be/restaurant/liege/4000-liege/8219-le-bar-a-gouts/")
page_source = response.read()

soup = BeautifulSoup(page_source)
name = soup.find_all("meta", attrs={"itemprop":"name"})
print(name[0])
# <meta content="LE BAR A GOUTS" itemprop="name"/>

print(name[0].find("<meta"))
# none
#/usr/bin/python
导入urllib2
从bs4导入BeautifulSoup
响应=urllib2.urlopen(“http://www.resto.be/restaurant/liege/4000-liege/8219-le-bar-a-gouts/")
page_source=response.read()
汤=美汤(第页\来源)
name=soup.find_all(“meta”,attrs={“itemprop”:“name”})
打印(名称[0])
# 

打印(名称[0]。查找(“您没有字符串,您有一个标记对象。打印标记有很好的HTML表示,但它不是字符串对象


因此,您使用的是BeautifulSoup
Tag.find()
函数,它返回
None
如果没有标签名为
的子标签,您没有字符串,您就有了一个标签对象。打印标签有很好的HTML表示,但它不是字符串对象


因此,您使用的是BeautifulSoup
Tag.find()
函数,它返回
None
如果在Python 2中没有标记名为
的子标记,
print
是一条语句,而不是一个函数。您可以安全地删除
(..)
括号。在Python 2中,
print
是一个语句,而不是一个函数。您可以安全地删除这里的
(…)
括号。我不了解关于tag.find的所有内容,但您帮了我很大的忙!确实是关于print name[0]['content']它是有效的!我真的不明白BeautifulSoup中的标记是什么。@Descampau:
soup
对象也是标记(顶层)。
find()
find\u all()
这些都可以在标记对象上调用。或者
name[0]。get('content'))
以防您要搜索多个标记,这些标记可能有属性,也可能没有属性。@DescampsAu:see。我不了解关于标记的所有内容。find,但您帮了我很大的忙!确实,使用打印名[0]['content']很有效!我不太明白BeautifulSoup中的标记是什么。@DescampsAu:soup
对象也是一个标记(顶层)。
find()
find_all()
等都可以在标记对象上调用。或者
name[0].get('content')
,以防您要搜索多个可能具有或可能不具有该属性的标记。@descamp;请参阅。
print name[0]['content']