我正在尝试使用 Selenium webdriver 方法中的以下 HTML 代码将范围中的所有文本提取到列表中:
['1a', '1b', '1c', '2a', ' ', ' ', '3a', '3b', '3c', '4a', ' ', ' ']
有哪位专家知道该怎么做吗?
HTML:
<tr style="background-color:#999"> <td><b style="white-space: nowrap;">table_num</b><enter code here/td> <td style="text-align:center;"> <span style="flex: 1;display: flex;flex-direction: column;"> <span>1a</span> <span>1b</span> <span>1c</span> </span> </td> <td style="text-align:center;"> <span style="flex: 1;display: flex;flex-direction: column;"> <span>2a</span> <span> </span> <span> </span> </span> </td> <td style="text-align:center;"> <span style="flex: 1;display: flex;flex-direction: column;"> <span>3a</span> <span>3b</span> <span>3c</span> </span> </td> <td style="text-align:center;"> <span style="flex: 1;display: flex;flex-direction: column;"> <span>4a</span> <span> </span> <span> </span> </span> </td> </tr>
在这个问题中,你想使用 Selenium 提取 HTML 中的文本内容并将其存储到一个列表中。根据你提供的 HTML 结构,可以通过以下步骤来提取所有的文本内容,包括空白字符(如空格)。
首先,你需要找到所有 <span> 标签的内容,因为这些标签包含了你要提取的文本。可以使用 Selenium 的 find_elements 方法来获取这些元素并提取其文本。
<span>
find_elements
这里有一个 Python 示例,使用 Selenium 提取并处理这些文本内容:
strip()
from selenium import webdriver from selenium.webdriver.common.by import By # 启动浏览器 driver = webdriver.Chrome() # 打开目标网页 driver.get('your_target_url') # 请替换为你的目标 URL # 查找所有的 <span> 元素 spans = driver.find_elements(By.TAG_NAME, 'span') # 提取所有文本并存入列表 text_list = [span.text.strip() for span in spans] # 打印结果 print(text_list) # 关闭浏览器 driver.quit()
driver.find_elements(By.TAG_NAME, 'span')
span.text.strip()
text_list
"1a"
"1b"
"1c"
"2a"
如果你的 HTML 内容和预期一致,输出将是类似以下的列表:
['1a', '1b', '1c', '2a', '', '', '3a', '3b', '3c', '4a', '', '']
如果你希望将空字符串 '' 转换为空格 ' ' 或者其他处理方式,你可以在列表推导式中加入条件来进行过滤:
''
' '
text_list = [span.text.strip() if span.text.strip() != '' else ' ' for span in spans]
这样,列表中的空白字符将被替换为一个空格 ' ',而不是空字符串 ''。
希望这个示例对你有所帮助!