You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BeautifulSoup获取<a>标签内的动态属性及内容?

问题:无法获取动态添加的cmp-ltrk属性

我尝试从目标HTML中获取“Apertura”,但始终无法成功。我了解到<a>标签原本没有“cmp-ltrk”属性,因此尝试先获取其父标签再访问该属性,但仍未成功。

尝试直接从<a>标签获取cmp-ltrk的代码:

url = "https://www.eldiario.es/"

response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")

a_tags = soup.find_all("a")

for i in a_tags:
    print(i)

输出结果:

<a class="item" href="https://www.eldiario.es/sociedad/educacion-no-recuperarse-recortes-pp-impuso-decreto-decada_1_9559396.html">
            Educación
        </a>

从<h2>标签尝试的代码:

url = "https://www.eldiario.es/"

response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")

a_tags = soup.find_all("h2", {"class": "ni-title"})

for i in a_tags:
    print(i)

输出结果类似:

<h2 class="ni-title bold"><a href="/sociedad/educacion-no-recuperarse-recortes-pp-impuso-decreto-decada_1_9559396.html">La Educación no consigue recuperarse de los recortes que el PP impuso por decreto hace una década</a></h2>

但始终看不到我要找的“cmp-ltrk”属性,也不知道如何访问它。需要说明的是,在两个循环中我尝试了所有针对i的方法(i.text、i.next等)。


解决方案

cmp-ltrk这类属性是页面加载后由JavaScript动态添加的,requests无法获取到。需要使用playwright/selenium(较简单的方案),或者选择js2py方案(较复杂)。——Barry the Platipus

以下代码可行:

df = pd.DataFrame(columns=["seccion","titulo","link","cmp"])

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=options)

url = "https://www.eldiario.es/"
driver.get(url)

page_source = driver.page_source

soup = BeautifulSoup(page_source, "lxml")

tags = soup.find_all("h2", {"class": "ni-title"})    

for i in tags:
    l=[]

    i.a["href"]
    cmp = i.a["cmp-ltrk"]
    href = i.a["href"]

    if href.startswith("http"):
        link = href
    else:
        link = "https://www.eldiario.es{0}".format(i.a["href"])

    titulo = i.text
    seccion = i.a["href"].split("/")[1]   
    l.append([seccion,titulo,link,cmp])
    df_ = pd.DataFrame(l,columns=["seccion","titulo","link","cmp"])
    df = pd.concat([df,df_],axis=0)

内容的提问来源于stack exchange,提问作者Adrián Sánchez de la Sierra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 00:15:42