当前位置: 首页 > 面试题库 >

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

扈瑞
2023-03-14
问题内容

我的链接看起来像这样

<div class="systemRequirementsMainBox">
<div class="systemRequirementsRamContent">
<span title="000 Plus Minimum RAM Requirement">1 GB</span> </div>

我想1 GB从那里去。我试过了

tt  = [a['title'] for a in soup.select(".systemRequirementsRamContent span")]
for ram in tt:
    if "RAM" in ram.split():
        print (soup.string)

它输出None

我试过了,a['text']但它给了我KeyError。我该如何解决?我的错误是什么?


问题答案:

您可以使用css选择器,使用标题文本拉出所需的跨度:

soup = BeautifulSoup("""<div class="systemRequirementsMainBox">
<div class="systemRequirementsRamContent">
<span title="000 Plus Minimum RAM Requirement">1 GB</span> </div>""", "xml")

print(soup.select_one("span[title*=RAM]").text)

找到具有包含 RAMtitle 属性的 跨度 ,等效于在python中说。 if "RAM" in span["title"]

或在 re.compile中 使用 find __

import re
print(soup.find("span", title=re.compile("RAM")).text)

要获取所有数据:

from bs4 import BeautifulSoup 
r  = requests.get("http://www.game-debate.com/games/index.php?g_id=21580&game=000%20Plus").content

soup = BeautifulSoup(r,"lxml")
cont = soup.select_one("div.systemRequirementsRamContent")
ram = cont.select_one("span")
print(ram["title"], ram.text)
for span in soup.select("div.systemRequirementsSmallerBox.sysReqGameSmallBox span"):
        print(span["title"],span.text)

这会给你:

000 Plus Minimum RAM Requirement 1 GB
000 Plus Minimum Operating System Requirement Win Xp 32
000 Plus Minimum Direct X Requirement DX 9
000 Plus Minimum Hard Disk Drive Space Requirement 500 MB
000 Plus GD Adjusted Operating System Requirement Win Xp 32
000 Plus GD Adjusted Direct X Requirement DX 9
000 Plus GD Adjusted Hard Disk Drive Space Requirement 500 MB
000 Plus Recommended Operating System Requirement Win Xp 32
000 Plus Recommended Hard Disk Drive Space Requirement 500 MB


 类似资料:
  • 问题内容: 我正在使用beautifulSoup从网站提取数据。每当您重新加载页面时,该网站上的文本都会更改,因此基本上,我希望能够将重点放在类名上作为静态变量,因为文本是动态的。 它打印出 当页面重新加载,我仍然有重点的领域,但我不知道如何只打印文本(在这种情况下是:4) 一旦解决了这个问题,我还有另一个问题:如果该类包含多个标签,是否有办法获取更多静态数据,以确保它只打印我在搜索的文本,而不是

  • 我想从URL示例中获取一个图像博客头像:https://soundcloud.com/topsify 我试图得到: 但它还是空的。请支持获取头像url:https://i1.sndcdn.com/avatars-000132054558-5ra8gl-t500x500.jpg谢谢

  • 我正在尝试刮网页,在那里我需要解码整个表到一个数据帧。我正为此使用漂亮的汤。在某些标记中,有一些标记没有任何文本。但这些值会显示在网页上的特定span标记中。 下面的代码对应于该网页, 但是,这个标记中显示的值是。我试着删掉它,但我收到的是空短信。 如何刮这个价值使用美丽的汤。 URL:https://en.tutiempo.net/climate/ws-432950.html 下面给出了我的用于

  • 问题内容: 有人可以告诉我未指定a 或元素的&位置吗? 即: 在上面,如果我这样做: 返回的值。但是,如果我尝试将其用于“ 12a”,则不会返回任何内容。 我在页面上有一堆/ s,我无法为其指定/ 属性,但是我需要在该元素的正下方显示一个。 问题答案: 此函数将告诉您元素相对于页面的x,y位置。基本上,您必须遍历所有元素的父级并将其偏移量加在一起。 但是,如果您只是想要元素相对于其容器的x,y位置

  • 问题内容: 使用BeautifulSoup bs4时,如何从HTML标签内部获取文本?当我运行此行时: 我得到这样的标签: 现在我只想获取其中的内部文本,不带标签。怎么做? 问题答案: 使用.text从标记中获取文本。 要不就 要打开文件并使用文本作为名称,请像使用其他任何字符串一样简单地使用它:

  • 问题内容: 在某些情况下,我必须从标记中获取文本,例如- 输入标签中的文本是一些说 但是当我使用时,它什么也不会返回。 无论如何,我可以从标签中获取文本吗? 问题答案: 您可以使用以下任何一种: 让我知道这是否没有帮助。