如何解析此代码以从 'span' (Beautiful Soup) 获取文本
How to parse this code to get a text from 'span' (Beautiful Soup)
请帮助我,我无法从这里获取字符串(“Kyiv”)(使用漂亮的汤。我只能得到 'None'
HTML 解析:
<div class="space rel">
<p class="lheight16">
<small class="breadcrumb x-normal">
<span><i data-icon="location-filled"></i>Kyiv</span>
</small>
尝试:
from bs4 import BeautifulSoup
html='''
<div class="space rel">
<p class="lheight16">
<small class="breadcrumb x-normal">
<span>
<i data-icon="location-filled">
</i>
Kyiv
</span>
</small>
</p>
</div>
'''
soup =BeautifulSoup(html,'html.parser')
#print(soup.prettify())
txt=soup.select_one('.breadcrumb span').get_text(strip=True)
print(txt)
输出:
Kyiv
此示例将获取有关广告的信息(标题、价格和位置):
import requests
from bs4 import BeautifulSoup
url = "https://www.olx.ua/moda-i-stil/odezhda/"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
for td in soup.select("td.offer"):
title = td.h3.get_text(strip=True)
price = td.select_one(".price").get_text(strip=True)
location = td.select_one('span:has([data-icon="location-filled"])').text
print(title)
print(price)
print(location)
print("-" * 80)
打印:
Дубленка Stradivarius 5738/401/147 M Бледно-розовая (05738401147035)
650 грн.
Бровары
--------------------------------------------------------------------------------
Кросівки чоловічі Nike 270 React кроссовки мужские найк 270 реакт
1 619 грн.
Львов, Шевченковский
--------------------------------------------------------------------------------
Кросівки adidas оригінал
1 500 грн.
Каменец-Подольский
--------------------------------------------------------------------------------
Garneau 39 розмір Велотуфлі / шипи
750 грн.
Червоноград
--------------------------------------------------------------------------------
...and so on.
请帮助我,我无法从这里获取字符串(“Kyiv”)(使用漂亮的汤。我只能得到 'None'
HTML 解析:
<div class="space rel">
<p class="lheight16">
<small class="breadcrumb x-normal">
<span><i data-icon="location-filled"></i>Kyiv</span>
</small>
尝试:
from bs4 import BeautifulSoup
html='''
<div class="space rel">
<p class="lheight16">
<small class="breadcrumb x-normal">
<span>
<i data-icon="location-filled">
</i>
Kyiv
</span>
</small>
</p>
</div>
'''
soup =BeautifulSoup(html,'html.parser')
#print(soup.prettify())
txt=soup.select_one('.breadcrumb span').get_text(strip=True)
print(txt)
输出:
Kyiv
此示例将获取有关广告的信息(标题、价格和位置):
import requests
from bs4 import BeautifulSoup
url = "https://www.olx.ua/moda-i-stil/odezhda/"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
for td in soup.select("td.offer"):
title = td.h3.get_text(strip=True)
price = td.select_one(".price").get_text(strip=True)
location = td.select_one('span:has([data-icon="location-filled"])').text
print(title)
print(price)
print(location)
print("-" * 80)
打印:
Дубленка Stradivarius 5738/401/147 M Бледно-розовая (05738401147035)
650 грн.
Бровары
--------------------------------------------------------------------------------
Кросівки чоловічі Nike 270 React кроссовки мужские найк 270 реакт
1 619 грн.
Львов, Шевченковский
--------------------------------------------------------------------------------
Кросівки adidas оригінал
1 500 грн.
Каменец-Подольский
--------------------------------------------------------------------------------
Garneau 39 розмір Велотуфлі / шипи
750 грн.
Червоноград
--------------------------------------------------------------------------------
...and so on.