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

为何BeautifulSoup的select()方法获取Stack Overflow内容返回空列表?

代码返回空列表的原因及解决办法

核心原因1:页面结构已更新

Stack Overflow的页面元素类名已经发生变更,你课程里用的.question-summary类早已被废弃,当前问题列表的卡片元素使用的是s-post-summary类(附带js-post-summary等其他类),所以用旧类名自然选不到任何元素。

核心原因2:请求被反爬机制拦截

requests.get()默认的请求头会被Stack Overflow的反爬系统识别为非浏览器请求,返回的可能是带有验证机制的页面(比如人机验证),而非正常的问题列表页面,导致解析不到目标元素。

修正后的代码示例

import requests
from bs4 import BeautifulSoup

# 添加模拟浏览器的请求头
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'
}

response = requests.get('https://stackoverflow.com/questions', headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

# 使用当前页面的正确类名
questions = soup.select('.s-post-summary')
print(f"共找到{len(questions)}个问题条目")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:10:27