2017-01-22 4 views
0

feedparser를 사용하여 rss 피드를 읽으려고합니다. 그러나 requests, feedparser 또는 urlopen을 사용하면 프로그램이 멈추게됩니다. 내가 얻으려고하는 페이지는 here (mangastream.com rss 피드)입니다.Cloudflare 서버를 처리하는 동안 요청을 사용하여 웹 페이지를 가져 오는 데 시간이 너무 오래 걸리지 만 브라우저 및 컬에서 빠르게 작동합니다.

브라우저에서 보거나 터미널의 컬을 사용하여 볼 수 있습니다. 이 cloudflare 서버에 문제가 될 수 -

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

은 지난 2 호선

enter image description here

편집을받지 않습니다? 어떤 종류의 DoS/bot 보호? 그러나 그것은 곱슬 곱슬하게 작동합니다. 프록시 나 그 밖의 어떤 것도 아닙니다.

편집 - 어떻게 든 작동하지만 여전히 (2-3 분 이상) 많은 시간이 걸립니다. 그것은 곱슬 곱슬하게 더 빨리 작동합니다.

+0

당신은 당신의 설정에 대한 좀 더 자세한 내용을 제공 할 수 있습니다, 재현 할 수 있습니까? –

+1

'urllib'와'requests' works .... –

+0

@JesseBakker 설정? :/나는 우분투, 파이썬 3.5를 virtualenv 안에서 돌리고있다. 나는 파이썬 프로세스가 네트워크에 접근 할 수 있도록 다른 URL (httpbin.org)을 가지고 테스트했다. –

답변

0

내 의견으로는 Cloudflare에 문제가있는 것처럼 보입니다. hostname을 IP 주소로 바꾸고 도메인 이름을 전달하면 host 헤더가 작동합니다.

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

Source