[ 기타 활동 ]/파이썬

파이썬 urllib를 사용하여 URL에서 이미지를 다운로드하지만 HTTP 오류 403 수신 : 금지됨

유니시티황 2018. 5. 16. 03:53

[문제]

일부 웹 사이트 (예 : mangastream.com)에서 작동하는 python 모듈 "urllib.request"를 사용하여 url에서 이미지 파일을 다운로드하고 싶지만 다른 (mangadoom.co)에서 "HTTP Error 403 : Forbidden"오류가 발생하면 작동하지 않습니다. . 후자의 경우 문제가 될 수 있으며 문제를 해결하는 방법은 무엇입니까?


오류 메시지의 끝에 그것을 말했다 :

그러나 다른 웹 사이트에서도 작동합니다.

import urllib.request


# does not work

img_url = 'http://mangadoom.co/wp-content/manga/5170/886/005.png'

img_filename = 'my_img.png'

urllib.request.urlretrieve(img_url, img_filename)




[해답]


개막전을 만들 수 있습니다. 다음은 그 예입니다.


import urllib.request



opener=urllib.request.build_opener()

opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]

urllib.request.install_opener(opener)




url=''

local=''

urllib.request.urlretrieve(url,local)


그런데 다음 코드는 동일합니다.


(노 - 오프너)


req=urllib.request.Request(url,data,hdr)   

html=urllib.request.urlopen(req)

(개막 된 오프너)


html=operate.open(url,data,timeout)

그러나 다음과 같이 헤더를 추가 할 수는 없습니다.


urllib.request.urlretrieve()

그래서이 경우에 우리는 오프너를 만들어야합니다.




import random

import urllib.request


# urllib.error.HTTPError: HTTP Error 403: Forbidden

# 에러에 대한 해결코드


opener=urllib.request.build_opener()

opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]

urllib.request.install_opener(opener)


# 에러에 대한 해결코드


url = "https://cdn-learn.adafruit.com/downloads/pdf/gemma_m0_clockwork_goggles.pdf"


urllist = url.split('/')

filename = urllist[len(urllist)-1]


def download_file(url):    

    urllib.request.urlretrieve(url, filename)    


download_file(url)



'[ 기타 활동 ] > 파이썬' 카테고리의 다른 글

The requests package  (0) 2018.05.16
특정폴더의 PDF 화일 받기  (0) 2018.05.16
Python으로 파일 다운로드  (0) 2018.05.16
Google Search 사용법  (0) 2018.05.15
스크롤러  (0) 2018.05.15