代码之家  ›  专栏  ›  技术社区  ›  Atma

如何用BeautifulSoup获取TR行的TDs列表

  •  0
  • Atma  · 技术社区  · 6 年前

    <tr>
    <td>cell1</td>
    <td>cell2</td>
    </tr>
    <tr>
    <td>cell3</td>
    <td>cell4</td>
    </tr>
    

    我正在使用BeautifulSoup尝试将TDs的内容映射到对象值。

    rows = soup.findAll('tr')
       for td in rows[1]:
          print(td.text)
    

    这张照片:

    cell1
    cell2
    cell3
    cell4
    

    我想得到每个单元格的具体索引。例如:

    print(td[0])
    

    KeyError: 0
    

    如何获得每个TD的索引?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Damzaky    6 年前

    当然,当你进入 td td公司 不是多个 td公司 s、 如果你想访问第一个 td公司 ,这样做:

    rows[1][0]
    

    以上代码表示访问 第二行的第一个元素。如果你只想 td公司

    rows = soup.findAll('tr')
    for row in rows:
        tds = row.findAll('td')
        print(tds[0])
    

    以上代码将打印每行的第一个td

        2
  •  0
  •   dabingsou    6 年前

    另一个解决方案。

    from simplified_scrapy import SimplifiedDoc
    html = '''
    <tr>
    <td>cell1</td>
    <td>cell2</td>
    </tr>
    <tr>
    <td>cell3</td>
    <td>cell4</td>
    </tr>
    '''
    doc = SimplifiedDoc(html)
    trs = doc.trs.tds.text
    
    print (trs[0][0])
    

    结果:

    cell1