我想在下面的代码中忽略<td>
中的嵌套标记。
我只希望<td>
中的整数(数字)而不是<strong>
标记中包含的文本。
我已经写了硒代码,但是它返回<td>.
中的全文
有什么方法可以让我忽略嵌套并获取<td>
Python代码:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#middle > table > tbody > tr:nth-child(2) > td:nth-child(1) > table > tbody > tr:nth-child(1) > td')))
data = driver.find_elements_by_css_selector("#middle > table > tbody > tr:nth-child(2) > td:nth-child(1) > table > tbody > tr:nth-child(1) > td")
print(data[0].text)
输出::包裹编号71200000
但是我只想要71200000
HTML:
<table width="100%">
<tbody>
<tr style="">
<td><strong>Parcel Number</strong> 71200000</td>
</tr>
<tr style="">
<td><strong>Tax Area</strong> 19A - TAX DISTRICT 19A</td>
</tr>
<tr style="">
<td><strong>Situs Address</strong> </td>
</tr>
<tr style="">
<td><strong>Legal Summary</strong> W.H.M. SECTION A BLK 1 LOT 1 CONT. 7.14 AC</td>
</tr>
</tbody>
</table>
答案 0 :(得分:1)
以下代码可能会对您有所帮助。
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#middle > table > tbody > tr:nth-child(2) > td:nth-child(1) > table > tbody > tr:nth-child(1) > td')))
data = driver.find_elements_by_css_selector("#middle > table > tbody > tr:nth-child(2) > td:nth-child(1) > table > tbody > tr:nth-child(1) > td")
print(data[0].text)
data_child = data[0].find_element_by_tag_name("strong")
data_parent = data[0].text.replace(data_child.text,'')
print(data_parent)
答案 1 :(得分:0)
在Java中,您可以执行以下操作-
data.substring(data.indexOf("</strong>")+"</strong>".length(), data .length()));
也许您可以将其转换为:)
答案 2 :(得分:0)
使用正则表达式。
import re
output = "Parcel Number 71200000"
m = re.search(r"\d+", output)
if m:
print(m.group())
输出:
71200000
答案 3 :(得分:0)
您可以使用分解函数删除<strong>
标签中的文本,而仅获取<td>
标签中的文本。
content = BeautifulSoup(yourhtml, 'html.parser')
tds = content.find_all('td')
tds[0].find("strong").decompose()
print(tds[0].text.strip())
输出: 71200000
答案 4 :(得分:0)
要提取所需的文本,您还可以使用 Python的 split()
方法,如下所示:
all_data = WebDriverWait(driver, 20).until.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#middle > table > tbody > tr:nth-child(2) > td:nth-child(1) > table > tbody > tr:nth-child(1) > td')))
for data in all_data:
print(data.text.split(">")[2])