如何用Python和Beautiful Soup获取div内的data-lnk-href属性
正确提取
data-lnk-href属性的实现方法 你的代码存在三个关键问题:
- 属性名拼写错误:目标属性是
data-lnk-href,你误写为data-link-href - 元素定位错误:
data-lnk-href直接挂载在目标div标签上,无需查找嵌套的a标签 - 类名间的多空格不影响匹配,BeautifulSoup会自动处理类名间的多余空格
正确实现代码
import requests from bs4 import BeautifulSoup # 目标网页地址 url = "https://www.pisos.com/alquiler/pisos-a_coruna/" # 请求页面并解析 response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") # 查找所有带有目标类的div元素 flats = soup.find_all("div", class_="ad-preview ad-preview--has-desc") # 遍历提取属性 for flat in flats: # 使用get方法避免属性不存在时抛出异常 lnk_href = flat.get("data-lnk-href") if lnk_href: print(lnk_href)
简化写法(使用CSS选择器)
也可以用CSS选择器直接定位元素,代码更简洁:
flats = soup.select("div.ad-preview.ad-preview--has-desc") for flat in flats: lnk_href = flat.get("data-lnk-href") if lnk_href: print(lnk_href)
内容的提问来源于stack exchange,提问作者Valkiria Acuatica
相关产品推荐
相关产品推荐

