作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 BeautifulSoup 从维基百科的信息框中抓取电影信息。我在削减电影预算时遇到了麻烦,如下所示。
例如,我想从信息框中删除“2500 万美元”预算值。鉴于 th
都没有,我怎样才能获得预算值?也不td
标签是唯一的吗? (参见 HTML 示例)。
假设我有tag = soup.find('th')
与值(value) <th scope="row" style="white-space:nowrap;padding-right:0.65em;">Budget</th>
- 我如何从 tag
获取“2500 万美元”的值(value)?
我想我可以做类似 tag.td
的事情或tag.text
但这些都不适合我。
我是否必须循环所有标签并检查它们的文本是否等于“预算”,如果是,则获取以下单元格?
HTML 代码示例:
<tr>
<th scope="row" style="white-space:nowrap;padding-right:0.65em;">Budget</th>
<td style="line-height:1.3em;">$25 million<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[2]</a></sup></td>
</tr>
<tr>
<th scope="row" style="white-space:nowrap;padding-right:0.65em;">Box office</th>
<td style="line-height:1.3em;">$65.7 million<sup id="cite_ref-BOM_3-0" class="reference"><a href="#cite_note-BOM-3">[3]</a></sup></td>
</tr>
最佳答案
可以先找到标签为td
且文本为Budget
的节点,然后找到它的下一个同级td
并从节点:
soup.find("th", text="Budget").find_next_sibling("td").get_text()
# u'$25 million[2]'
关于python - 使用 BeautifulSoup 从标签中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42662200/
我是一名优秀的程序员,十分优秀!