如何从 <span class="className">TEXT I WANT</span> in Python 中获取文本
How to get text from inside a <span class="className">TEXT I WANT</span> in Python
如何根据下面的屏幕截图获取相当于 21,427
的标题文本。
我试过了,但没用:
rating_count = soup.find("span", attrs={'class':'rating_count'})
print rating_count
这是输出
您收到此错误是因为您输入的跨度 class 有误。如果您仔细查看您发布的图片,它表示跨度的 class 是 rating-count,而您输入的是 rating_count 变成 BeautifulSoup。因此,它查找 rating_count,没有找到,并且 returns NoneType
.
rating_count = soup.find("span",{'class':'rating-count'}).text
print rating_count
这将完全满足您的需求。
from BeautifulSoup import BeautifulSoup
data='<span class="rating-count">TEXT I WANT</span>'
soup=BeautifulSoup(data)
t=soup.find('span',{'class':'rating-count'})
print t.text
已编辑:
根据您提供的代码。看起来由于没有定义 header,google 不会发送您要查找的信息。因此,BeautifulSoup 无法找到跨度,因为它实际上并不存在。试试这个,它对我有用:
pkg = "com.mavdev.focusoutfacebook"
url = "https://play.google.com/store/apps/details?id=" + pkg
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
data = opener.open(url).read()
soup=BeautifulSoup(data)
t=soup.find('span',{'class':'rating-count'})
print t.text
结果:
>>>
1,397
您是否尝试从页面中的多个容器中获取内容?你能计算 span class: rating-count in the DOM 并查看是否有其他元素使用相同的 class 名称。可能是因为其他一些具有相同 class 名称的元素为 EMPTY。如果是这样,您可以执行 IF-ELSE 将 'null' 分配给您的属性。
如何根据下面的屏幕截图获取相当于 21,427
的标题文本。
我试过了,但没用:
rating_count = soup.find("span", attrs={'class':'rating_count'})
print rating_count
这是输出
您收到此错误是因为您输入的跨度 class 有误。如果您仔细查看您发布的图片,它表示跨度的 class 是 rating-count,而您输入的是 rating_count 变成 BeautifulSoup。因此,它查找 rating_count,没有找到,并且 returns NoneType
.
rating_count = soup.find("span",{'class':'rating-count'}).text
print rating_count
这将完全满足您的需求。
from BeautifulSoup import BeautifulSoup
data='<span class="rating-count">TEXT I WANT</span>'
soup=BeautifulSoup(data)
t=soup.find('span',{'class':'rating-count'})
print t.text
已编辑:
根据您提供的代码。看起来由于没有定义 header,google 不会发送您要查找的信息。因此,BeautifulSoup 无法找到跨度,因为它实际上并不存在。试试这个,它对我有用:
pkg = "com.mavdev.focusoutfacebook"
url = "https://play.google.com/store/apps/details?id=" + pkg
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
data = opener.open(url).read()
soup=BeautifulSoup(data)
t=soup.find('span',{'class':'rating-count'})
print t.text
结果:
>>>
1,397
您是否尝试从页面中的多个容器中获取内容?你能计算 span class: rating-count in the DOM 并查看是否有其他元素使用相同的 class 名称。可能是因为其他一些具有相同 class 名称的元素为 EMPTY。如果是这样,您可以执行 IF-ELSE 将 'null' 分配给您的属性。