Python:无法使用BeautifulSoup获取所有<span>标记中的所有文本

德川健吾

我已经查看了stackoverflow,但仍然没有找到解决方案。这是我需要处理的html文件:

......<span ><span class='pl'>Director </span>: <span class='attrs'><a href="/celebrity/1022571/" rel="v:directedBy">James</a></span></span><br/>
<span ><span class='pl'>Actor</span>: <span class='attrs'><a href="/celebrity/1022571/">Tom</a></span></span><br/>
<span class="pl">Countries:</span> USA <br/>
<span class="pl">Language:</span> English <br/>......

文件中有很多span标签。这是我的代码:

from bs4 import BeautifulSoup

record=[]
soup=BeautifulSoup(html)
spans=soup.find_all('span')
for span in spans:
    record.append(span.text)

我使用上面提到的代码,但遇到2个问题。第一个是我加倍DirectorActor结果是因为它们在2个span标记中。第二个问题是我无法在<br>标签之前获取文本我不想使用以下代码:

soup.find("span", text="Language:").next_sibling

因为对于每个br标签,我都需要将该代码添加到我的项目中,这很烦人。您有一些优雅的解决方案吗?

ec

如果要编写通用的内容,则仍然需要使用next_sibling查找下一个同级标记/文本节点find_next_sibling

这是处理两种情况的代码-当标签和文本节点后面有一个元素时:

soup = BeautifulSoup(html, "html.parser")

for label in soup.find_all("span", class_="pl"):
    value = label.find_next_sibling("span", class_="attrs")
    value = label.next_sibling.strip() if not value else value.get_text(strip=True)

    label = label.get_text(strip=True).strip(":")
    print(label, value)

印刷:

Director James
Actor Tom
Countries USA
Language English

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取HTML span标记内的所有文本,并使用javascript将其聚类

来自分类Dev

使用BeautifulSoup在亚马逊页面中的所有span标签中查找文本

来自分类Dev

使用BeautifulSoup无法在</ span>标记后立即获取文本

来自分类Dev

无法使用BeautifulSoup获取span属性的文本

来自分类Dev

获取Pararagraph标记中的所有文本

来自分类Dev

从<span>中的<span>获取文本

来自分类Dev

BeautifulSoup 找到 div > span > a 中的所有 title 和 href

来自分类Dev

无法从程序集中的所有类型获取Span <Type>

来自分类Dev

使用特定的span类python硒获取页面中的所有元素

来自分类Dev

在所有开始的锚标记之后添加<span>

来自分类Dev

如何使用JavaScript获取与元素SPAN样式相关的所有文本?

来自分类Dev

如何删除所有SPAN?

来自分类Dev

jQuery:检查所有<DIV>或<Span>是否包含特定文本

来自分类Dev

用自己的文本更新所有span元素的内容

来自分类Dev

用自己的文本更新所有span元素的内容

来自分类Dev

刮除没有类名称的Span标记,并且不会出现在所有Elements中

来自分类Dev

Javascript查找除<a>标记中的文本外的所有文本

来自分类Dev

Beautifulsoup4-不选择span类的所有实例

来自分类Dev

如何获取定位标记中span元素的文本?

来自分类Dev

如何从BeautifulSoup中的span标签获取文本

来自分类Dev

在其他页面的所有 h2 + span 中查找文本并使用 jquery 附加到不同的页面

来自分类Dev

python - 如何使用beautifulsoup在网页中的某个文本之前获取所有<p>标签?

来自分类Dev

如何通过使用python硒获取span标签(如<span> Test </ span>)中的文本?

来自分类Dev

使用 BeautifulSoup 提取 span 元素中的文本

来自分类Dev

应用所有<span>样式,但<pre>或<code>中的元素除外

来自分类Dev

删除 div 中除 span 元素之外的所有内容

来自分类Dev

C#中的RegEx获取具有特定类名的所有SPAN标签

来自分类Dev

使用BeautifulSoup或re从类的所有<div>标记中删除所有<u>和<a>标记

来自分类Dev

无法使用python-BeautifulSoup获取标签下的所有节点

Related 相关文章

  1. 1

    获取HTML span标记内的所有文本,并使用javascript将其聚类

  2. 2

    使用BeautifulSoup在亚马逊页面中的所有span标签中查找文本

  3. 3

    使用BeautifulSoup无法在</ span>标记后立即获取文本

  4. 4

    无法使用BeautifulSoup获取span属性的文本

  5. 5

    获取Pararagraph标记中的所有文本

  6. 6

    从<span>中的<span>获取文本

  7. 7

    BeautifulSoup 找到 div > span > a 中的所有 title 和 href

  8. 8

    无法从程序集中的所有类型获取Span <Type>

  9. 9

    使用特定的span类python硒获取页面中的所有元素

  10. 10

    在所有开始的锚标记之后添加<span>

  11. 11

    如何使用JavaScript获取与元素SPAN样式相关的所有文本?

  12. 12

    如何删除所有SPAN?

  13. 13

    jQuery:检查所有<DIV>或<Span>是否包含特定文本

  14. 14

    用自己的文本更新所有span元素的内容

  15. 15

    用自己的文本更新所有span元素的内容

  16. 16

    刮除没有类名称的Span标记,并且不会出现在所有Elements中

  17. 17

    Javascript查找除<a>标记中的文本外的所有文本

  18. 18

    Beautifulsoup4-不选择span类的所有实例

  19. 19

    如何获取定位标记中span元素的文本?

  20. 20

    如何从BeautifulSoup中的span标签获取文本

  21. 21

    在其他页面的所有 h2 + span 中查找文本并使用 jquery 附加到不同的页面

  22. 22

    python - 如何使用beautifulsoup在网页中的某个文本之前获取所有<p>标签?

  23. 23

    如何通过使用python硒获取span标签(如<span> Test </ span>)中的文本?

  24. 24

    使用 BeautifulSoup 提取 span 元素中的文本

  25. 25

    应用所有<span>样式,但<pre>或<code>中的元素除外

  26. 26

    删除 div 中除 span 元素之外的所有内容

  27. 27

    C#中的RegEx获取具有特定类名的所有SPAN标签

  28. 28

    使用BeautifulSoup或re从类的所有<div>标记中删除所有<u>和<a>标记

  29. 29

    无法使用python-BeautifulSoup获取标签下的所有节点

热门标签

归档