我需要使用 beautifulsoup python库从“ ikman.lk” 中检索数据。
<span class="t-small summary-count"> Showing 1-25 of 131 ads for <span>"Samsung Galaxy A5"</span>.</span>
我只需要使用Beautifulsoup库获得“显示131条广告中的1-25条”部分。 我尝试过,
pgn = soup1.find("span", {"class": "t-small summary-count"}).text
print(pgn)
但它说“'NoneType'对象没有属性'text'“。 谢谢
答案 0 :(得分:1)
如果我正确回答了问题,则需要从子标签之前的标签中获取初始文本。标签的子项位于名为.contents的列表中。
您可以使用.contents[0]
from bs4 import BeautifulSoup
html="""
<span class="t-small summary-count"> Showing 1-25 of 131 ads for <span>"Samsung Galaxy A5"</span>.</span>
"""
soup=BeautifulSoup(html,'html.parser')
pgn = soup.find("span", {"class": "t-small summary-count"})
print(pgn.contents)
print(pgn.contents[0])
输出
[' Showing 1-25 of 131 ads for ', <span>"Samsung Galaxy A5"</span>, '.']
Showing 1-25 of 131 ads for
答案 1 :(得分:0)
您需要使用<span> .... </span>
查找select
,然后使用previousSibling
获取文本。
所有代码:
from bs4 import BeautifulSoup
html = ''' <span class="t-small summary-count"> Showing 1-25 of 131 ads for
<span>"Samsung Galaxy A5"</span>.</span>
'''
soup = BeautifulSoup(html, 'lxml')
get_span = soup.find('span' , attrs={'class' : 't-small summary-count'})
for a in get_span.select('span'):
print a.previousSibling