2017-03-28 12 views
0

이봐 난다운로드 파일이됩니다 무효

그래서 난이

을위한 파이썬을 사용하고있는 링크는 인도의 NSE 웹 사이트에서 주식 데이터를 다운로드하려고

import urllib 
    urllib.urlretrieve("https://www.nseindia.com/content/historical/DERIVATIVES/2016/JAN/fo01JAN2016bhav.csv.zip","fo01JAN2016bhav.csv.zip") 

하지만, 다운로드 한 파일을 열려고하면 해당 파일이 열립니다.

compressed zipped file is invalid 

나는 단순히

링크

https://www.nseindia.com/content/historical/DERIVATIVES/2016/JAN/fo01JAN2016bhav.csv.zip

을 열었다됩니다 다운로드됩니다 파일 링크를 붙여 그것을 웹 사이트에서 정상 다운로드를 시도 할 때 내가 URLLIB 2 를 사용하려고하면 그래서 난이

f=urllib2.urlopen('https://www.nseindia.com/content/historical/DERIVATIVES/2016/JAN/fo01JAN2016bhav.csv.zip') 

Traceback (most recent call last): 
    File "<pyshell#6>", line 1, in <module> 
    f=urllib2.urlopen('https://www.nseindia.com/content/historical/DERIVATIVES/2016/JAN/fo01JAN2016bhav.csv.zip') 
    File "C:\Python27\lib\urllib2.py", line 127, in urlopen 
    return _opener.open(url, data, timeout) 
    File "C:\Python27\lib\urllib2.py", line 410, in open 
    response = meth(req, response) 
    File "C:\Python27\lib\urllib2.py", line 523, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "C:\Python27\lib\urllib2.py", line 448, in error 
    return self._call_chain(*args) 
    File "C:\Python27\lib\urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "C:\Python27\lib\urllib2.py", line 531, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
HTTPError: HTTP Error 403: Forbidden 
를 얻을 수

어떻게 수정합니까?

그것은 단지 내가 imgur에서 이미지를 다운로드 시도이 링크를 발생하고 코드가 난 normaly 브라우저를 통해 액세스 할 수있는시기를

가 왜 HTTP 403 오류가오고 잘 작동?

+0

사이트에서 일부 헤더 유효성 검사를 수행합니다. 'user-agent'와'accept'를 설정하는 것으로 충분할 것 같습니다. – user650881

답변

1

이 링크는 당신이 원하는 무엇의 예를 제공합니다 https://stackoverflow.com/a/22776/6595777

zip 파일을 다운로드에 대한 또 다른 질문을 발견. 이것을 시도하십시오 :

url = "http://www.nseindia.com/content/historical/DERIVATIVES/2016/JAN/fo01JAN2016bhav.csv.zip" 
download = urllib2.urlopen(url) 
with open(os.path.basename(url), "wb") as f: 
    f.write(download.read()) 

아직 답변 권한이 없으므로 답변으로 게시하고 있습니다. https를 통해 링크를 탐색 할 수 없습니다. http가 작동합니다. 스크립트에서 http로 링크를 변경해 보셨습니까?

스크립트가 HTTPS를 사용하는 (ERR_SSL_PROTOCOL_ERROR를.)이 파일 이름을 갖 다운로드 당신이 (.zip로 끝나는)을 지정할 수 있음을 의미하려고 할 때 내가 오류 페이지를 다운로드하는 것이 가능하지만 실제로입니다 html. 이것은 zip 파일이

+0

참으로 http로 변경하려고했는데 여전히 작동하지 않습니다. 이미지와 같은 다른 링크는 완벽하게 작동합니다. –

+0

파이썬 2 오류는 사용자가 링크 (403 : 금지됨)에 액세스 할 수 없다는 오류입니다. 나는 그것이 금지되어야한다고 생각하지 않도록 http 링크에 접근 할 수있다. 당신은 urllib과 urllib2 모두에 http를 시도 했습니까? – DarkMatterMatt

+0

나는 https를 통해 링크를 얻을 수없는 이유를 모르지만 시크릿 모드를 사용하고 다른 브라우저를 사용해 보았습니다. urllib2를 사용하여이 링크에 대한 http 403 오류가 발생합니다.참으로 나는 urllib2와 함께 http를 시도했지만 동일한 오류가 발생했다. –

0

이봐, 난이 URLLIB 및 urllib2가 도서관에서 일어나고있는 이유를 알 수없는 잘못되었다고 당신에게 오류를 줄 것이다 의미하지만 난

r = requests.get(url) 
with open("code3.zip", "wb") as code: 
    code.write(r.content) 
라이브러리 요청을 사용하는 경우

근무

이것은 내 대답에 대한 간접적 인 해결책 일 수 있습니다.