python - 如何从 html 源代码中具有相同属性集和相同层次结构的 2 个元素中抓取单个元素(使用 python 的美丽汤)
问题描述
我想删除图像中以蓝色突出显示的元素。该元素代表特定电影的“票数”。当我尝试删除它时,我也会在图像中得到代表“收藏”的底部元素” 因为这两个元素具有相同的属性和相同的层次结构。有没有办法只提取突出显示的元素?
解决方案
一种方法可能是遍历所有的兄弟姐妹,<p class="sort-num_votes-visible">
如果你发现一个被 a和 a<span name="nv">
包围的那,那么这一定是你正在寻找的跨度。这当然意味着这个 HTML 片段的结构总是相同的。如果其中一个s 可能丢失,那么这种方法显然会失败。<span class="text-muted">
<span class="ghost">
span
如果保证这两个跨度始终存在并且按照确切的顺序,您可以执行以下操作(您的增补 HTML 在 中html_soup
):
votes = html_soup.find("p", {"class": "sort-num_votes-visible").find_all("span", {"name": "nv"})[0]
编辑:
根据您的评论,您可以执行以下操作来解析多部电影的投票:
for p in html_soup.find("p", {"class": "sort-num_votes-visible"}):
votes = p.find_all("span", {"name": "nv"})[0]
< Put whatever code here for each of your movies
...
>
推荐阅读
- javascript - lodash 的 uniquby 向我返回错误的结果
- javascript - 范围和价格滑块上的 Algolia 键盘导航
- php - 莫里斯图表不显示页面为空白
- javascript - 如何使用 jquery 检查元素是否具有转换属性?
- c++ - 将泛型类句柄转换为具有多重继承的基类(即接口)
- python - plotly dash不刷新
- flyway - 迁移脚本名称作为占位符?
- angular - 如何将两个角度数组与 ids 进行比较,如果它与第一个数组的 id 匹配,则给出第二个数组的输出
- javascript - 仅在状态更新时导航
- wpf - SciChart (C# WPF)。在 TextAnnotation 中绑定 Text 属性的问题