如何解决R语言读取Yahoo Finance时出现的HTTP 503错误?
解决rvest访问Yahoo Finance出现HTTP 503错误的方法
- 模拟浏览器请求头:
rvest::read_html()默认发送的请求缺少浏览器标识的User-Agent,会被Yahoo的反爬系统识别拦截,返回503错误。需要手动添加请求头,模拟真实浏览器的请求行为。
具体代码示例:
library(rvest) library(httr) # 构造带浏览器标识的请求头 headers <- add_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" ) # 发送带请求头的GET请求后解析HTML response <- GET("https://finance.yahoo.com/quote/VWIUX", headers) page <- read_html(response) # 测试解析结果,比如提取股票名称 stock_name <- page %>% html_element("h1") %>% html_text() print(stock_name)
- 补充注意事项:
- User-Agent可以从自己常用浏览器的开发者工具Network面板中获取,尽量使用当前主流版本的标识。
- 若仍报错,可尝试添加更多请求头字段(如
Accept-Language、Referer),进一步贴近真实浏览器的请求特征。 - 避免短时间内频繁发送请求,必要时用
Sys.sleep()设置请求间隔,防止触发更严格的反爬限制。
内容的提问来源于stack exchange,提问作者rmacey
相关产品推荐
相关产品推荐

