【问题标题】: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,创建一个所有&lt;tr&gt;的列表,然后遍历每一个,检查&lt;td class="name"&gt;中的文本是否为asdf,如果为真,我们就得到&lt;td class="value"&gt;中的文本。

在代码中:

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())

【讨论】:

  • 嗯,好像是这样,但是你对lxml的树有答案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多