python - 如何对从 beautifulsoup 抓取的 html 中的列表元素进行排序?

标签 python beautifulsoup python-requests

我正在尝试抓取 html 数据,并已成功找到我想要抓取的数据。问题是我试图抓取没有类或 id 的 li 元素,以便从页面上的其他几个元素中找到它们,因此我找到了从其类中找到的 ul 元素。所以我有 ul 和我需要保存到变量名记录中的 li 元素,但是当我打印 record.li.text 时,我只得到第一个 li 元素,还没有弄清楚如何获取 ul 中的其他 li 元素。感谢任何帮助

soup = BeautifulSoup(response.content, "html.parser")
record = soup.find("ul", class_="ClubhouseHeader__Record")
print(record)

有输出

<ul class="ClubhouseHeader__Record"><li>64-98</li><li>3rd in AL Cent</li></ul>

同时

soup = BeautifulSoup(response.content, "html.parser")
record = soup.find("ul", class_="ClubhouseHeader__Record").li.text
print(record)

有输出

64-98

我希望输出是

64-98
3rd in AL Cent

感谢任何帮助!

最佳答案

你很接近。只需使用 BeautifulSoup.find_all:

r = [i.text for i in soup.find("ul", class_="ClubhouseHeader__Record").find_all('li')]

输出:

['64-98', '3rd in AL Cent']

关于python - 如何对从 beautifulsoup 抓取的 html 中的列表元素进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861646/

相关文章:

python - 使用 Python/C API 将 Python 列表传递给 C 函数

python-3.x - 从 beautifulsoup4 网络抓取结果中删除特定的 <h2 类>

python - 在python中使用lxml解析http[s] weboages

python - 使用请求登录网站

python - 为什么我必须将 .wait() 与 python 的子进程模块一起使用?

python - 在 Python 中比较数字的一般方法

Python beautifulsoup 解析速度提升

Python POST 请求未经过登录页面

python - 将列表推导式传递给 Python 中的函数

python - 为从网站抓取数据添加的每个项目添加对象