Rumble RSS feed - 使用 python urllib.request 调用时给出 403

问题描述 投票:0回答:1

代码失败的原因是

            req = urllib.request.Request(url)

在浏览器地址行中输入正常工作的隆隆 RSS 提要地址会返回“403 - 授权无济于事”。

youtube RSS feed 地址工作正常,其他 RSS feed 地址工作正常。

顺序是地址被击中,隆隆声给出一个到 API 地址的临时重定向,然后给出 403。原始地址和 API 地址都可以从浏览器地址行正常工作。

我一直在添加越来越多的标头等...并且只点击一个网址...所以它不太可能受到限制 - 在 RSS 提要上拥有更聪明的反机器人内容是没有意义的(!)但我都试过了,还是不行。欢迎任何想法。

仅供参考

这是我尝试过的两组标题 - 它们不起作用,但确实破坏了 YouTube 链接(!)。

           headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
                'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                'Accept-Language': 'en-US,en;q=0.5',
                'Accept-Encoding': 'gzip, deflate, br',
                'Connection': 'keep-alive',
                'Upgrade-Insecure-Requests': '1',
                'Sec-Fetch-Dest': 'document',
                'Sec-Fetch-Mode': 'navigate',
                'Sec-Fetch-Site': 'none',
                'Sec-Fetch-User': '?1',
                'Cache-Control': 'max-age=0',
            }
          
            
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0',
                'Accept': 'application/rss+xml,application/xml;q=0.9,*/*;q=0.8',
                'Accept-Language': 'en-US,en;q=0.5',
                'Accept-Encoding': 'gzip, deflate, br',
                'Connection': 'keep-alive',
                'Referer': 'https://www.rumble.com/',
                'Origin': f'https://{parsed_url.netloc}'
            }

两者都与

一起使用
            req = urllib.request.Request(url, headers=headers)
python rss rumble-api
1个回答
0
投票

我终于追踪到了这一点 - cloudflare 工具正在阻止请求,我无法找出该请求是什么让他们感到不安,但我使用了 CURL 并且它工作得很好......所以将代码更改为看起来像 CURL 请求,这仍然不起作用。所以我重写了代码以实际调用 CURL 来执行获取...现在工作正常。

我本可以使用wireshark或类似工具来更仔细地检查请求,但切换到CURL更快/更容易。

© www.soinside.com 2019 - 2024. All rights reserved.