python - Selenium:表格没有以正确的格式打印
问题描述
table=driver.find_element_by_xpath("/html/body/div[2]/div/main/div[2]/div[4]/div[3]/div/div[1]/div/div[1]/div[1]/div/div[2]/div/table")
rows=table.find_elements_by_class_name("institutional-holdings__row")
for row in rows:
for x in range(0,2):
col = row.find_elements(By.TAG_NAME, "td")[x]
print(col.text)
那么我的输出是:
Institutional Ownership
70.82 %
Total Shares Outstanding (millions)
7,532
Total Value of Holdings (millions)
$1,372,078
和我想要的输出:
Institutional Ownership70.82 %
Total Shares Outstanding (millions)7,532
Total Value of Holdings (millions)$1,372,078
我遇到的问题是它正在一一打印每一列。循环一次迭代所有列。我想在一次迭代中打印一列。
解决方案
如果要收集每一行文本并打印它们,不要立即打印每一行中的每一列。尝试这样的事情:
table=driver.find_element_by_xpath("/html/body/div[2]/div/main/div[2]/div[4]/div[3]/div/div[1]/div/div[1]/div[1]/div/div[2]/div/table")
rows=table.find_elements_by_class_name("institutional-holdings__row")
for row in rows:
row_text = ""
for x in range(0,2):
col = row.find_elements(By.TAG_NAME, "td")[x]
row_text = row_text + col.text
row_text = row_text + " "
print(row_text.strip())
我还在行中的单元格文本之间添加了一个空格,以使其更清晰。
推荐阅读
- json - Scala 中的 PlayJSON
- html - 如何偏移锚链接以清除固定标题?
- java - 如何理解 forkjoinpool 并行性?
- scala - Scala:突破 foldLeft
- flask - 如何在 Flask Admin 上执行 Ajax 表单字段
- node.js - 为什么 JSON.stringify 从 node.js 导入到 EJS 模板时需要保留对象的值?
- unix - 如何使用 sed 删除行的模式匹配
- php - Php - Laravel:按日期分组的行总和
- machine-learning - Pytorch 中的这些反向训练方法有什么区别?
- node.js - Multer Image 未在 Production Build React 上加载?