2017-01-22 3 views
0

feedparserを使用してRSSフィードを読み取ろうとしています。しかし、requestsfeedparserまたはurlopenを使用するとプログラムが停止する。私が得ようとしているページはhere(mangastream.com rssフィード)Cloudflareサーバーを処理しているときにリクエストを使用してWebページを取得するには時間がかかりすぎますが、ブラウザとカールですばやく動作します

私はそれをブラウザで見ることができますか、ターミナルのカールを使って得ることができます。

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

それは2

enter image description here

編集を過去の行を取得することはできません - これは、CloudFlareのサーバの問題だろうか?いくつかの種類のDoS /ボットの保護?しかし、それはカールで動作します。プロキシや何かの背後にない

0120-- 何とか動作していますが、まだまだ時間がかかります(2〜3分以上)。それは、カールでより速く動作します。

+0

あなたのセットアップに関するいくつかの詳細を与えることができ、再現することができませんか? –

+1

'urllib'と' requests' works .... –

+0

@JesseBakkerセットアップ? :/私はUbuntu、Python 3.5をvirtualenvの中で動かしています。私は他のURL(httpbin.org)でテストして、pythonプロセスがネットワークにアクセスできるようにしました。 –

答えて

0

これは私の側のCloudflareの問題のようです。ホスト名をIPアドレスに置き換え、ドメイン名を渡すと、hostヘッダーが動作します。

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

Source

関連する問題