首页 > 解决方案 > 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

我遇到的问题是它正在一一打印每一列。循环一次迭代所有列。我想在一次迭代中打印一列。

标签: pythonseleniumselenium-webdriver

解决方案


如果要收集每一行文本并打印它们,不要立即打印每一行中的每一列。尝试这样的事情:

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())

我还在行中的单元格文本之间添加了一个空格,以使其更清晰。


推荐阅读