我使用bs4作为
从表中获取文本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个序列?我试过下面的
headings = [i.get_text() for i in table.find("tr").find_all("td").find_all("div")]
如果我只使用find("td")
,我只得到一个值而不是表中的所有值。
我如何遍历"td"
并为每个元素获取"div"
答案 0 :(得分:2)
有一种更简单,更简洁的方式 - docs:
[elm.get_text() for elm in soup.select("table.table_class tr td div")]
答案 1 :(得分:1)
每当遇到涉及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"))]