我需要從 python 中的類中獲取值“Anti-Mage”。我該怎么做?
<td class="cell-xlarge"><a href="/players/432283612/matches?hero=anti-mage">Anti-Mage</a><div class="subtext minor"><a href="/matches/6107031786"><time data-time-ago="2021-07-26T23:27:54 00:00" datetime="2021-07-26T23:27:54 00:00" title="Mon, 26 Jul 2021 23:27:54 0000">2021-07-26</time></a></div></td>
uj5u.com熱心網友回復:
r1 = requests.get(f"https://www.dotabuff.com/players/{a}/heroes", headers = headers)
html1 = BS(r1.content, 'lxml')
for a in html1.find('td', {'class': 'cell-xlarge'}):
b = a.findChildren('a', recursive=False)
a_value = b.string
print(a_value)
uj5u.com熱心網友回復:
首先,您需要td從其類名中選擇父項(在本例中)。你可以做類似的事情
td = soup.find('td', {'class': 'cell-xlarge'})
然后找到a類似這樣的子標簽
a = td.findChildren('a', recursive=False)[0]
這會給你a標簽。要獲得它的價值,你可以.string這樣使用
a_value = a.string
這給了你反法師的價值
uj5u.com熱心網友回復:
編輯
根據您的評論,獲取所有<a>.
import requests
from bs4 import BeautifulSoup as BS
url = 'https://www.dotabuff.com/players/432283612'
headers = {
"Accept":"*/*",
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"
}
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text)
[x.text for x in soup.select('article a[href*="matches?hero"]')]
輸出
['Anti-Mage', 'Shadow Fiend', 'Slark', 'Morphling', 'Tinker', 'Bristleback', 'Invoker', 'Broodmother', 'Templar Assassin', 'Monkey King']
假設您的問題中發布的 HTML 是BeautifulSoup物件,請在以下位置呼叫text方法<a>:
soup.a.text
或選擇您提到的更具體的課程:
soup.select_one('.cell-xlarge a').text
注意:在某些情況下 選擇元素class只是第三個最佳選項,因為類可以是動態的,不是唯一的,... - 更好的策略是通過 id、tag 選擇
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428665.html
上一篇:將徽標影像添加到引導導航欄
