如何按顺序获取所有元素文本
How to get all elements text in sequential order
我使用 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"
有一个更简单、更简洁的方法——一个 CSS 选择器:
[elm.get_text() for elm in soup.select("table.table_class tr td div")]
每当遇到涉及可迭代对象/迭代器的问题时,请查看迭代工具。
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"))]
相关文章:
- 识别切换条元素文本并在量角器中单击它
- 数组函数不适用于从元素文本创建的JavaScript数组
- 将元素文本替换为子项中的值
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 使用 jQuery 从目标页面而不是当前页面获取元素文本
- 使用jquery为html元素文本的每个字符设置动画
- regex替换元素文本
- 在 Firefox 中单击鼠标时无法选择所有输入元素文本
- 如何确定 HTML 元素文本中“新行”的位置
- 在量角器中将元素文本转换为对象
- 无法使用 jquery 获取 xml 元素文本值
- jQuery - 仅获取父元素文本,而不获取子元素文本
- 单击其他元素(文本输入)时显示下拉列表
- 使用自定义绑定更新元素文本
- Android驱动程序的scrollTo和scrollToExact 方法的问题.方法不会滚动到所需的元素文本,而是滚动
- 选择元素文本并添加逗号
- 获取不带 html 标记的页面元素文本,但保留换行符
- 删除元素文本中的最后一个字符
- 如何按顺序获取所有元素文本
- 使用AngularJS将元素文本复制到title属性的干净方法