Python + Selenium读取html表

时间:2019-05-11 15:58:24

标签: python selenium

我正在尝试从没有ID的表中获取数据,在使用Python和Selenium时我似乎无法进行搜索。以下是HTML的代码段,我试图获取名称,名称后还有其他行,但是我只是在这里显示名称。我有什么想法可以遍历所有这些条目并获取其值。

我尝试了一些搜索Div类的示例,但无法使其正常工作。以下是我要搜索的原始HTML。

<div class="block-content-body clear-block">
    <div class="inline-block" style="border-top:2px solid #50afb1; padding:0px;">
        <div class="table-block standard no-plumb-line">
            <table cellpadding="0" cellspacing="0">
            <tbody><tr>
            <td id="" style="padding-left:4px;padding-bottom:2px;height:25px;vertical-align:middle">             
            <div>
            Name</div> 
            </td>
        <td id="" class="text-center" style="padding-left:4px;padding-bottom:2px;height:25px;vertical-align:middle">

            <div>
                <strong>
                     David     
               </strong>
            </div>
            </td>
    </tr>

我想获取名称字段和值David。地址行1和2等下还有其他字段。我想获取所有这些内容。

我的代码如下:

elements = driver.find_elements_by_xpath("//div[@class='table-block standard no-plumb-line']")
    print(elements)


    for num in (1,elements.length):

        text1 = driver.find_element_by_xpath("//*[@class='table-block standard no-plumb-line']/div["+num+"]/div[1]").text
        text2 = driver.find_element_by_xpath("//*[@class='table-block standard no-plumb-line']/div["+num+"]/div[2]").text        
        print(text1)
        print(text2)

1 个答案:

答案 0 :(得分:0)

这是带有所需xpath的脚本,该脚本将提供“名称:值”对。

rows = driver.find_elements_by_xpath("//div[@class='table-block standard no-plumb-line']/table//tr")

for rowNum in range(len(rows)):
    nameCols = driver.find_elements_by_xpath("//div[@class='table-block standard no-plumb-line']/table//tr[" + str(rowNum+1) + "]/td[descendant::div[not(strong)]]")
    for col in nameCols:
        name = col.text
        value = col.find_element_by_xpath("./following-sibling::td//strong").text
        print (name + " : " + value)