我正在从 table 中抓取文本,但结果是空引号 ' '

I am scraping text from a table but the results is empty quotes ' '

下面是 table 的 1 行,其中 6 列来自 HTML 代码

<tr>
  <td class="roster_jerseynum ">4</td>
  <td class="sidearm-table-player-name " data-sort="Vargas, Andres">
    <a href="/sports/mens-volleyball/roster/andres-vargas/2462">Andres 
    Vargas</a>
  </td>
  <td class="rp_position_short ">OH</td>
  <td class="height " data-sort="72">6-0</td>
  <td class="roster_class " data-sort="0">Fr.</td>
  <td class="hometownhighschool ">Bogota, Colombia / Lawrence Senior</td>
</tr>

我正在尝试抓取玩家姓名第 2 列,下面是 HTML 行。

<td class="sidearm-table-player-name " data-sort="Vargas, Andres">
  <a href="/sports/mens-volleyball/roster/andres-vargas/2462">Andres 
  Vargas</a>
</td>

下面是我的代码。问题是我无法从 td (cell[1]) 中抓取名称 当我打印 List1 时,我的代码结果只有空引号 ' ',没有玩家姓名。 对于List2,我可以毫无问题地获得高度。

我在 td 中看到名称,还有额外的 data-sorta 标签。

需要结果列表

感谢任何帮助。

for row in the_Table.findAll('tr'):
  cells=row.findAll('td')
  if len(cells)== 6:
    List1.append(cells[1].find(text=True).rstrip("\n"))
    List2.append(cells[3].find(text=True).rstrip("\n"))

这是一种选择:

for row in the_Table.findAll('tr'):
  cells=row.findAll('td')
  if len(cells)== 6:
    List1.append(' '.join(cells[1].findAll(text=True)).rstrip("\n"))
    List2.append(' '.join(cells[3].findAll(text=True)).rstrip("\n"))

findAll() returns 一个列表,即使它只找到一个项目,所以在将其转换为字符串之前不能对其使用字符串方法。 ' '.join() 将列表的成员连接成一个以空格作为分隔符的字符串。

另一种选择是直接访问您感兴趣的每个标签的 text 属性:

for row in the_Table.findAll('tr'):
  cells=row.findAll('td')
  if len(cells)== 6:
    List1.append(cells[1].text.rstrip("\n"))
    List2.append(cells[3].text.rstrip("\n"))