尝试
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = "https://www.unespa.es/en/directory/"
headers = {
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0"
}
soup = BeautifulSoup(requests.get(url, headers=headers).content, "html.parser")
data = []
for c in soup.select(".contact-item"):
for t in c.select("span, a"):
t.unwrap()
c.smooth()
title, *other = c.get_text(separator="|||", strip=True).split("|||")
data.append(
{"Title": title, **{(s := d.split(":", maxsplit=1))[0]: s[1] for d in other}}
)
df = pd.DataFrame(data)
print(df)
打印:
Title Tfno. Fax Web Dirección Email
0 A.M.A., AGRUPACIÃN MUTUAL ASEGURADORA, MUTUA DE SEGUROS APF 91 343 47 00 (91) 343 47 68 http://www.amaseguros.com VÃA DE LOS POBLADOS, 3 28033 (MADRID) NaN
1 ABANCA GENERALES DE SEGUROS Y REASEGUROS 881920742 / 881920744 NaN NaN AV. LINARES RIVAS 30, 3º 15005 A CORUÃA (A CORUÃA) NaN
2 ABANCA VIDA Y PENSIONES DE SEGUROS Y REASEGUROS, S.A. 981 188 075 NaN NaN AVENIDA DE LA MARINA, 1-3ª PLANTA 15001 A CORUÃA (A CORUÃA) NaN
3 ADMIRAL EUROPE COMPAÃIA DE SEGUROS S.A.U. (AECS) NaN NaN https://www.admiraleurope.com/ RODRÃGUEZ MARÃN, 61 - 1ª PLANTA 28016 MADRID (MADRID) NaN
4 AEGON ESPAÃA, SOCIEDAD ANÃNIMA DE SEGUROS Y REASEGUROS 91 563 62 22 NaN http://www.aegon.es VÃA DE LOS POBLADOS, 3 - EDIFICIO 4B - PARQUE EMPRESARIAL CRISTALIA 28033 (MADRID) NaN
5 AGROPELAYO SOCIEDAD DE SEGUROS, SOCIEDAD ANÃNIMA NaN NaN NaN SANTA ENGRACIA, 67 - 69 28010 (MADRID) NaN
...