使用请求获取网页在处理 Cloudflare 服务器时花费的时间太长,但在浏览器和 curl 中运行速度很快

Getting a webpage using requests is taking too long while dealing with Cloudflare server, but works quickly in browser and curl

我正在尝试使用 feedparser 阅读 rss 提要。但是当使用 requestsfeedparserurlopen 时程序会卡住。我要获取的页面是 here (mangastream.com rss feed)

我可以在浏览器中查看它或在终端中使用 curl 获取它。

>>> import feedparser
>>> feed = feedparser.parse('http://mangastream.com/rss')

它不会超过第 2 行。

编辑 - 这可能是 cloudflare 服务器的问题吗? DoS/bot 某种保护?但它适用于卷曲。不在代理或任何东西后面。

Edit - 它以某种方式工作,但仍然需要很多时间(超过 2-3 分钟)。它与 curl 一起工作得更快。

这看起来像是我这边 Cloudflare 的问题,用 IP 地址替换主机名并将域名作为 host header 是可行的。

>>> import requests
>>> requests.get("http://104.28.18.11/rss", headers={'host':'mangastream.com'})
<Response [200]>

Source