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

Python调用feedparser读取VMware RSS被拒绝 Chrome可正常访问

问题根因

VMware官方文档站点配置了User-Agent(用户代理)请求头校验规则,feedparser内置的HTTP请求模块默认携带的UA标识会被站点反爬策略拦截,因此返回403访问拒绝错误;Chrome浏览器发起请求时会携带标准的浏览器UA标识,符合站点校验规则,因此可以正常访问。

解决方案

提前使用requests库模拟浏览器UA发起请求获取到正常的RSS源内容后,再将内容传递给feedparser做解析即可,修改后的代码如下:

from datetime import datetime
import feedparser
import requests

def ESXi():
    # 配置模拟Chrome浏览器的请求头
    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"
    }
    # 先请求获取RSS源原始内容
    rss_resp = requests.get("https://docs.vmware.com/en/VMware-vSphere/rn_rss.xml", headers=headers)
    # 传入原始内容给feedparser解析
    NewsFeed = feedparser.parse(rss_resp.text)
    print(NewsFeed)
    num = len(NewsFeed.entries)
    # 后续业务逻辑保持不变

补充说明

feedparser的parse方法支持传入URL、本地文件路径、以及已经拉取到的XML文本内容,上述方案通过提前自行发起带合规UA的请求绕开了站点的UA校验规则,不需要修改feedparser的底层配置,适配性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:15:04