[문제]
일부 웹 사이트 (예 : 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 |