Cómo obtener texto de la etiqueta span en BeautifulSoup

Tengo enlaces como este

1 GB

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) 

Da salida a None .

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

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

 soup = BeautifulSoup("""
1 GB
""", "xml") print(soup.select_one("span[title*=RAM]").text)

Eso encuentra el intervalo con un atributo de título que contiene RAM , es equivalente a decir en python, if "RAM" in span["title"] .

O usando 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 que 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