2012-11-05 4 views
4

Project Gutenberg 라이브러리에 액세스하는 데 문제가 있습니다 ... Python 2.7.3을 사용하고 있습니다. NLTK 라이브러리에 액세스하여 파이썬으로 작업 할 수 있지만 원시 텍스트에 액세스하려고하면 허용되지 않습니다.Project Gutenberg 원시 텍스트에 액세스 할 수 없습니다.

내가 접근 한 텍스트는 죄와 벌입니다, 그것은 (원시) 1176831 동일하지만, 대신 나에게 288 여기 의 (원시)는 렌을 제공해야 내가 사용하는 코드입니다 렌 것 :

>>> from __future__ import division 
>>> import nltk, re, pprint 
>>> from urllib import urlopen 
>>> url = "http://www.gutenberg.org/files/2554/2554.txt" 
>>> raw = urlopen(url).read() 
>>> type(raw) 
<type 'str'> 
>>> len(raw) 
288 
>>> raw 
'<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\n<html><head>\n<title>403 Forbidden</title>\n</head><body>\n<h1>Forbidden</h1>\n<p>You don\'t have permission to access /files/2554/2554.txt\non this server.</p>\n<hr>\n<address>Apache Server at www.gutenberg.org Port 80</address>\n</body></html>\n' 
>>> 

답변

4

HTTP 403 응답의 이유는 here입니다. 기본적으로이 사이트는 "사람 (비 자동화 된) 사용자 만 사용할 수 있습니다. 자동 도구를 사용하여 웹 사이트에 액세스하는 경우 IP 주소 또는 서브넷이 일시적으로 또는 영구적으로 차단됩니다."

코드가 작동해야하지만 웹 사이트에서는 브라우저가 아닌 코드를 통해 사이트에 액세스하고 있다고 판단합니다. 그것이 내가 말할 모든 것입니다. :)

+1

정말 고맙습니다. 감사. – user1799092

-1
from urllib import urlopen 

url = "http://www.gutenberg.org/files/2554/2554**-0**.txt" 

raw = urlopen(url).read() 
+1

스택 오버플로에 오신 것을 환영합니다! 네가 무엇을 요구하는지 명확히하라. 감사! – MaiaVictor

+1

스택 오버플로에 오신 것을 환영합니다! 이 코드 스 니펫을 이용해 주셔서 감사 드리며 도움이 될 것입니다. 이 설명이 왜 문제에 대한 좋은 해결책인지를 보여줌으로써 적절한 설명 ([meta.stackexchange.com/q/114762])은 교육적 가치를 크게 향상시킬 것이며, 비슷한 미래의 독자들에게 더 유용하게 활용할 수 있습니다. 그러나 동일하지는 않습니다. 설명을 추가하려면 답을 편집하고 어떤 제한 및 가정이 적용되는지 표시하십시오. –

관련 문제