【问题标题】:Get text on html element based on different one [duplicate]根据不同的元素获取html元素上的文本[重复]
【发布时间】:2021-05-13 06:53:26
【问题描述】:
所以我有这样的东西
<tr>
<td class="name">
qwer
</td>
<td class="value">
rtyu
</td>
</tr>
<tr>
<td class="name">
asdf
</td>
<td class="value">
zxcv
</td>
</tr>
如果名称元素包含文本条目 (asdf),则寻找获取值元素文本 (zxcv) 的方法
【问题讨论】:
标签:
python
html
parsing
xpath
lxml
【解决方案1】:
你可以用beautifulsoup,创建一个所有<tr>的列表,然后遍历每一个,检查<td class="name">中的文本是否为asdf,如果为真,我们就得到<td class="value">中的文本。
在代码中:
import bs4 as bs
html= """<tr>
<td class="name">
qwer
</td>
<td class="value">
rtyu
</td>
</tr>
<tr>
<td class="name">
asdf
</td>
<td class="value">
zxcv
</td>
</tr>"""
soup = bs.BeautifulSoup(html,'lxml')
trs = soup.findAll("tr")
for tr in trs:
td_name=tr.find("td", {"class": "name"})
if(td_name.text.strip() == "asdf"):
td_value=tr.find("td", {"class": "value"})
print(td_value.text.strip())