gpt4 book ai didi

python - 使用 Beautiful Soup 提取兄弟文本节点

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:16 25 4
gpt4 key购买 nike

我正在尝试使用漂亮的汤获取某些文本,但我不知道如何获取/strong 标记后的文本。我找到了我正在寻找的内容,但只需要某些元素。

res = requests.get('http://www.fangraphs.com/statss.aspx?playerid=10155&position=OF')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "lxml")
gamescore = soup.select('#content > table > tr > td > table > tr > td > div')

输出:生日:8/7/1991(25 岁,6 岁,12 岁) 击球/ throw : R/R

是否可以只从中获取生日和 R/R?

最佳答案

您可以选择 <strong>基于文本的元素,然后使用 next_sibling property 选择相邻的兄弟节点.

birthday = soup.find('strong', text='Birthdate:').next_sibling.strip()
gamescore = soup.find('strong', text='Bats/Throws:').next_sibling.strip()

输出:

> print(birthday, gamescore)
> 8/7/1991 (25 y, 6 m, 12 d) R/R

如果要选择 <strong> 中的每一个元素及其下一个兄弟节点,那么您可以使用以下内容:

elements = soup.select('#content > table table div > strong')

for element in elements:
print(element.text, element.next_sibling)

输出:

> Birthdate:  8/7/1991 (25 y, 6 m, 12 d)     
> Bats/Throws: R/R     
> Height/Weight: 6-1/235     
> Position: OF
> Contract:

关于python - 使用 Beautiful Soup 提取兄弟文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42335127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com