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

如何从BeautifulSoup获取的og:description meta标签提取文本?

问题描述

给定格鲁吉亚房产网站,使用以下代码爬取房源详情页的og:description内容:

div_class = content.find_all("div", class_='sc-8fa2c16a-5 gpNUxi')
for div in div_class:
    prices.append(div.text)
    subcontent = requests.get(base_link + div.a['href'])
    subcontent = BeautifulSoup(subcontent.text, 'html.parser')
    meta = subcontent.find_all("meta", property='og:description')
    print(meta[0])

执行后输出的meta标签如下:

<meta content="იყიდება 4 ოთახიანი ბინა. თეთრი კარკასი. ორი სველი წერტილი. (ერთი სველი წერტილი გარემონტებულია) დიდი ტერასითა და მოწესრიგებული სადარბაზოთი. დახურული ეზო შლაგბაუმით. ვარ მესაკუთრე. მეტროდан 
მაქსიმუმ 5 წუთის სავალზე.
სველი წერტილები ისეა განლაგებული შესაძლებელია მარტივატ ორ ბინად დაყოფა. 

ფასზე დალაპარაკება შესაძლებელია.
01.11.12.018.202

" property="og:description"/>

尝试用meta[0].text提取文本时没有结果,求解决方法。

解决方法
  • 核心原因:<meta>是自闭合标签,本身不存在文本节点,.text方法仅能获取标签内部嵌套的文本内容,因此无法拿到目标值。
  • 正确实现:通过get('content')方法直接读取标签的content属性值,优化后的代码如下:
div_class = content.find_all("div", class_='sc-8fa2c16a-5 gpNUxi')
for div in div_class:
    prices.append(div.text)
    subcontent = requests.get(base_link + div.a['href'])
    subcontent = BeautifulSoup(subcontent.text, 'html.parser')
    meta = subcontent.find("meta", property='og:description')  # 用find更高效,单页面仅存在一个og:description
    if meta:  # 增加判断避免索引越界报错
        description = meta.get('content')
        print(description)

内容的提问来源于stack exchange,提问作者user4356954

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:53:16