首页 > 解决方案 > 用 Beautifulsoup 复制的元素

问题描述

这是网址:https://yorkathletics.com/sports/mens-swimming-and-diving/roster"

如果我运行这个命令:

soup.find_all('span', class_="sidearm-roster-player-height")

然后我尝试获取输出的长度,提到 20 而应该是 10。

我不明白为什么会这样。

标签: python-3.xbeautifulsoup

解决方案


更改您的类选择器,如下所示:

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://yorkathletics.com/sports/mens-swimming-and-diving/roster')
soup = bs(r.content, 'lxml')
print([i.text for i in soup.select('.height')])

注意:您可以使用 pandas 抓取整张桌子:

import pandas as pd

table = pd.read_html('https://yorkathletics.com/sports/mens-swimming-and-diving/roster')[2]
print(table)

推荐阅读