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

使用urllib.request访问雅虎财经股票URL时遭遇HTTP 404错误

解决urllib.request访问股价URL出现404错误的方案

常见原因及处理方法

1. 添加浏览器请求头伪装

多数财经网站会通过检查User-Agent识别爬虫,urllib默认的请求头会被拦截。你需要自定义请求头模拟浏览器访问:

import urllib.request as ur
from bs4 import BeautifulSoup

url_is = "你的目标股价URL"
# 替换为当前主流浏览器的User-Agent,可从浏览器开发者工具中获取
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 构造带请求头的Request对象
req = ur.Request(url_is, headers=headers)
read_data = ur.urlopen(req).read()
soup_is = BeautifulSoup(read_data, 'lxml')

2. 处理Cookie与会话验证

部分网站需要先建立会话(获取Cookie)才能访问数据页面,直接请求目标URL会被判定为未授权返回404:

import urllib.request as ur
from bs4 import BeautifulSoup

url_is = "你的目标股价URL"
home_url = "网站首页URL"  # 先访问首页初始化会话Cookie
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}

# 创建带Cookie处理的Opener
cookie_handler = ur.HTTPCookieProcessor()
opener = ur.build_opener(cookie_handler)
# 先访问首页获取会话标识
opener.open(home_url)
# 再请求目标页面
req = ur.Request(url_is, headers=headers)
read_data = opener.open(req).read()
soup_is = BeautifulSoup(read_data, 'lxml')

3. 验证URL的实际有效性

浏览器中能打开的URL可能存在重定向,若urllib处理重定向时出现异常也会返回404。建议:

  • 打开浏览器开发者工具(F12),切换到「网络」标签,刷新页面后查看实际请求的URL(而非地址栏显示的URL)
  • 对比代码中的URL是否与实际请求地址完全一致,注意是否包含动态参数(如时间戳、会话ID)

4. 改用更易用的requests库

urllib的API相对繁琐,requests库内置了请求头、Cookie管理和错误处理,能减少这类问题:

import requests
from bs4 import BeautifulSoup

url_is = "你的目标股价URL"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 发起请求并自动处理重定向、Cookie
response = requests.get(url_is, headers=headers)
# 主动抛出HTTP错误(如404、500)便于排查
response.raise_for_status()
soup_is = BeautifulSoup(response.text, 'lxml')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:20:29