如何在使用python进行web抓取时访问HTML类中的特定对象

2024-05-19 06:21:48 发布

您现在位置:Python中文网/ 问答频道 /正文

现在,我明白这可能是一个简单的问题,但我对HTML一无所知,而且我对使用python进行web抓取还不熟悉。我想知道是否有人能告诉我如何在这个网站(https://sky.lea.moe/stats/Igris/Apple)上访问这个类中的特定对象。我想要访问的特定对象在下面的HTML中。 ''' 平均技能水平: 32.5 == $0 ''' 我当前的代码看起来像这样,并打印出一个空列表,即使它确实打印了,我也只希望它打印出上面显示的特定代码行中的所有内容

import bs4

res = requests.get('https://sky.lea.moe/stats/Igris/Apple')
soup = bs4.BeautifulSoup(res.text, 'lxml')
type(soup)

skillAverageList = []

for i in soup.select('.stat-value'):
     skillAverageList.append(i.text)

任何帮助都将不胜感激,希望这将进一步帮助我理解HTML和python作为一个整体。提前谢谢


Tags: 对象代码texthttpsapplehtmlstatsres
2条回答
import requests
from bs4 import BeautifulSoup

res = requests.get('https://sky.lea.moe/stats/Igris/Apple')

soup = BeautifulSoup(res.text, 'lxml')

print(soup.find("div", {"id":"additional_stats_container"}).find_all("div",class_="additional-stat")[-2].get_text(strip=True))

输出:

Average Skill Level:32.5
elements = soup.find_all("span", class_="stat-name")
skill = [i for i in elements if "Average Skill" in i.text] #getting element that has "Average Skill" in its text
idx = elements.index(skill) #getting its index to get the value of same index from values
values = soup.find_all("span", class_="stat-value")
value = values[idx] #as told earlier index of name would be same for value
print(skill[0].text + value.text)

相关问题 更多 >

    热门问题