如何按顺序获取所有元素文本

How to get all elements text in sequential order

我正在使用 bs4 作为

从 table 获取文本
soup = BeautifulSoup(html_text)
table = soup.find("table", attrs={"class":"table_class"})

headings = [i.get_text() for i in table.find("tr").find_all("td")]

但是我怎样才能有 2 个 findall 顺序呢?我在下面试过

headings = [i.get_text() for i in table.find("tr").find_all("td").find_all("div")]

如果我只使用 find("td"),我只会得到一个值,而不是 table 的所有值。 我如何遍历 "td" 并为每个元素获取 "div"

每当遇到涉及 iterables/iterators 的问题时,请查看 itertools。

from itertools import chain

headings = [i.get_text() for i in chain.from_iterable(x.find_all("div") for x in table.find("tr").find_all("td"))]

还有一个更简单更简洁的方法——a CSS selector:

[elm.get_text() for elm in soup.select("table.table_class tr td div")]