python - 我正在从表格中抓取文本,但结果是空引号 ' '
问题描述
下面是来自 HTML 代码的 6 列表格的 1 行
<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-sort
和a
标签。
需要结果作为列表
感谢任何帮助。
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()
返回一个列表,即使它只找到一个项目,所以在将其转换为字符串之前,您不能对其使用字符串方法。将' '.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"))
推荐阅读
- c++ - 使用 redis 进行日志缓存:是否可以创建驱逐到 PostgreSQL 的驱逐策略?
- swift - 使用 Swift 从 1 个随机位置中找到 300 个目的地中最近的位置
- mysql - 在 MySQL 中,我们如何判断一个表的索引是否是聚集的?
- google-maps - 如何将谷歌地图的大小设置为不重叠BottomNavigationBar
- python - 获取:“ FileNotFoundError:[Errno 2]没有这样的文件或目录:'posted.txt'”即使我确实有这样的文件
- php - 当客户在 Woocommerce 中取消订阅时删除用户
- jquery - Oracle 特权矩阵
- ios - 创建一个数组,将用户输入拆分为 6 个不同的文本字段(swift)
- ansible - 如何仅在具有 if/when 条件的组中的一台主机上运行 delegate_to 任务?
- ios - AFNetworking 连接检测并返回一个变量