python web-scraping beautifulsoup python-3.4

python - Cómo obtener texto de la etiqueta span en BeautifulSoup



web-scraping python-3.4 (1)

Tengo enlaces como este

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

Estoy tratando de obtener 1 GB desde allí. Lo intenté

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

Emite None .

Intenté a[''text''] pero me da KeyError. ¿Cómo puedo solucionar esto y cuál es mi error?


Puede usar un selector css, tirando del tramo que desee utilizando el texto del título:

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)

Que encuentre el lapso con un atributo de título que contenga RAM , es equivalente a decir en python, if "RAM" in span["title"] .

O utilizando find con re.compile

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

Para obtener todos los datos:

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)

Lo cual te dará:

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