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

使用BeautifulSoup爬取雅虎财经返回404 无法获取正确soup对象

问题原因

雅虎财经配置了反爬策略,会校验HTTP请求头的User-Agent字段,默认requests库发送的请求会携带暴露爬虫身份的UA标识,因此被服务端拦截返回404页面。

解决步骤

  1. 构造合规的请求头,模拟浏览器的UA标识即可正常请求:
from bs4 import BeautifulSoup
import requests

# 构造请求头,模拟Chrome浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
# 发送请求时传入headers参数
response = requests.get('https://finance.yahoo.com/quote/FBRX/profile?p=FBRX', headers=headers)
# 可先判断状态码是否正常再解析
if response.status_code == 200:
    soup = BeautifulSoup(response.text, 'lxml')
    print(soup)
else:
    print(f"请求失败,状态码:{response.status_code}")
  1. 如果添加UA后仍被拦截,可额外补充以下请求头字段,进一步模拟真实浏览器请求特征:
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1'
}

注意事项

  • 不要高频发送请求,避免触发IP限流规则,可适当添加time.sleep()设置请求间隔
  • 如果需要批量抓取数据,建议搭配代理IP池使用,降低被封IP的风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:36:02