从python中的span标签提取内容

时间:2020-10-06 04:09:42

标签: python web-scraping beautifulsoup

我正在尝试提取https://www.lamudi.com.mx/nuevo-leon/departamento/for-rent/?page=1

中实时发布的数据

我正在尝试使用以下内容来刮除卧室,浴室和平方米的内容:

tags2 = soup('span',{'class':'KeyInformation-label_v2'})
for tag in tags2:
    tagl = tag.get_text().strip()
    print(tagl)

但是我现在需要实际数据。 HTML的外观如下(卧室=休闲房,浴室=巴尼奥,平方米=建筑): </span>, <span class="icon-pin"></span>, <span>Grañ Francisco Villa ote San Pedro, San Pedro Garza García</span>, <span class="PriceSection-FirstPrice">$ 7,500</span>, <span class="PriceLabel"></span>, <span class="KeyInformation-value_v2">1</span>, <span class="KeyInformation-label_v2">Recámara</span>, <span class="KeyInformation-value_v2">1</span>, <span class="KeyInformation-label_v2">Baño</span>, <span class="KeyInformation-value_v2">50 m²</span>, <span class="KeyInformation-label_v2">Construidos </span>, <span class="KeyInformation-value_v2">

2 个答案:

答案 0 :(得分:0)

对于标签内的文本,您需要使用tag.string方法

来自美丽的汤documentation

soup = BeautifulSoup('<b class="boldest">Extremely bold</b>', 'html.parser')
tag = soup.b
tag.string
# 'Extremely bold'

答案 1 :(得分:0)

'KeyInformation-label_v2'仅返回属性的名称。您需要类'KeyInformation-value_v2'来获取值。

您也可以为每个列表添加标题。请注意,有一些重复项。

titles = soup('div', {'class':'KeyInformation-attribute_v2'})
labels = soup('span', {'class':'KeyInformation-label_v2'})
values = soup('span', {'class':'KeyInformation-value_v2'})

for title, (label, value) in zip(titles, zip(labels, values)):
    print(title.find('a')['title'], label.string, value.string.strip())

输出:

Loft en Renta Amueblado Una Recámara Cerca Udem  Recámara 1
Loft en Renta Amueblado Una Recámara Cerca Udem  Baño 1
Loft en Renta Amueblado Una Recámara Cerca Udem  Construidos  50 m²
Loft en Renta Amueblado Una Recámara Cerca Udem  Recámara 1
Loft en Renta Amueblado Una Recámara Cerca Udem  Baño 1
Loft en Renta Amueblado Una Recámara Cerca Udem  Construidos  50 m²
DEPARTAMENTO EN RENTA SAN JERONIMO EQUIPADO Recámaras 3
DEPARTAMENTO EN RENTA SAN JERONIMO EQUIPADO Baños 2
...