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

BeautifulSoup无法抓取关键词Meta标签问题求助

解决BeautifulSoup无法抓取Meta关键词标签的问题

我来帮你排查下问题哈,你遇到的情况大概率是这几个原因之一:请求头缺失导致网站返回了不同内容,或者BeautifulSoup的查找语法不对,也有可能是解析器的兼容性问题。咱们一步步来解决:

1. 先补全合规的请求头

很多网站会校验请求的User-Agent字段,如果你的请求没带上这个头,网站可能返回简化版页面甚至反爬拦截页面,自然找不到目标Meta标签。咱们先给请求加上标准的浏览器UA:

2. 修正查找逻辑与解析器选择

Meta关键词标签通常是<meta name="keywords" content="xxx">格式,需要精准匹配name属性;另外Python自带的html.parser对复杂HTML的解析精度有限,换成lxml解析器会更可靠(需要先安装:pip install lxml)。

修正后的完整代码

import urllib2
from bs4 import BeautifulSoup

url = "https://www.mediapost.com/publications/article/316086/google-facebook-others-pitch-in-app-ads-brand-s.html"

# 带上模拟浏览器的请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

req = urllib2.Request(url=url, headers=headers)
try:
    f = urllib2.urlopen(req)
    mycontent = f.read()
    
    # 使用lxml解析器处理HTML
    soup = BeautifulSoup(mycontent, 'lxml')
    
    # 精准查找name属性为keywords的Meta标签
    keywords_meta = soup.find('meta', attrs={'name': 'keywords'})
    
    if keywords_meta:
        # 提取content属性中的关键词内容
        keywords = keywords_meta.get('content')
        print("提取到的关键词:", keywords)
    else:
        print("未找到keywords标签,可能页面结构已变更或被反爬拦截")
except Exception as e:
    print("请求过程出错:", str(e))

额外排查建议

  • 如果还是找不到标签,先把mycontent打印出来,确认返回的HTML里是否真的存在目标Meta标签——要是返回的是登录页或反爬提示,可能需要进一步处理Cookie或使用代理。
  • 少数网站的关键词标签会用property="og:keywords"这类非标准属性,你可以查看页面源码确认属性名,再调整attrs里的键值对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:30:20