인코딩 + 403 Forbidden 질문입니다.
241
5 asked
download 2-8-2 코드 작성할 때 인프런의 추천강좌의 글 + 그림을 저장하는 코드입니다.
for i, e in enumerate(img_list, 1):
with open(savePath+"text_"+str(i)+".txt","wt") as f:
# 저장할 경로에 "text_순번.txt"의 이름으로 텍스트를 저장한다. 텍스트 쓰기 모드 (wt)
f.write(e.select_one("div.card-content > div.course_title").string)
fullFileName = os.path.join(savePath, savePath+str(i)+'.png')
imgUrl = e.select_one("div.card-image > figure > img")['src']
base = rep.urljoin(imgUrl, "../../../../../")
parseUrl = rep.urlparse(imgUrl).path
path = rep.quote(parseUrl)
fullURL = rep.urljoin(base, path)
request_url = req.Request(fullURL, None, headers)
response_url = req.urlopen(request_url)
f = open(fullFileName, 'wb')
f.write(response_url.read())
f.close()
#req.urlretrieve(fullURL, fullFileName)
이 코드를 실행할 때 그림을 불러올 때 일부의 그림 주소가 한글로 인코딩 되어 있어서 그냥 단순히 그림의 주소로 urlretrieve를 실행하면 UnicodeEncodeError: 'ascii' codec can't encode characters in position 70-75: ordinal not in range(128)
가 발생합니다.
때문에 한글 인코딩을 바꿔주고자 이미지 주소의 path 부분을 추출해서 path 부분만 인코딩해주고 url을 합쳐주고 retrieve를 실행하면 403 forbidden 에러가 뜹니다.
여기에 헤더를 추가하는 방법을 구글링해서 찾아봐서 저렇게 추가했지만 403 forbidden이 사라지지 않습니다.
문제가 되는 사진의 주소입니다.
https://cdn.inflearn.com/public/courses/324995/course_cover/efab1490-0082-446a-b173-52108106bfc1/%EC%9D%B8%ED%94%84%EB%9F%B0-%EA%B5%90%EC%9E%AC%ED%8C%90%EB%A7%A4-%EB%8C%80%EB%AC%B8.jpg https://cdn.inflearn.com/public/courses/324995/course_cover/efab1490-0082-446a-b173-52108106bfc1/%25EC%259D%25B8%25ED%2594%2584%25EB%259F%25B0-%25EA%25B5%2590%25EC%259E%25AC%25ED%258C%2590%25EB%25A7%25A4-%25EB%258C%2580%25EB%25AC%25B8.jpg
위로 접속하면 정상 접속이 됩니다.
아래로 접속하면 (인코딩 후) 엑세스가 거부됩니다.
어떻게 해결할 수 있을까요?
Answer 1
0
안녕하세요.
개발자도구로 현재 이미지 주소를 정확하게 확인해 보시고
인코딩한 주소와 비교해 보세요!
굳이 인코딩 하지 않아도 quote 만 사용해서 호출하면 ascii 에러는 나지 않을 수 있어요!
현재 예제에서 error 발생
0
367
3
유튜브 동영상 다운로드
0
1448
2
Atom 에디터 관련
0
337
1
위시켓 폼데이터
0
274
1
스케줄러 사용 관련 질문 드립니다
0
627
1
selenium 에러
0
428
1
Progress bar 쓰레드 관련
0
489
1
Install Package 관련 문의
0
328
1
tkinter 샘플 코드 실행 오류 건
0
1267
1
4-7-6 네이버 & 카카오 주식 정보 가져오기
0
381
1
네이버자동로그인_by_selenium
0
876
1
위시캣 로그인 처리 및 크롤링 질문
0
345
1
2-8-1 네이버이미지 크롤링 질문
1
604
3
li:nth-of-type 질문
0
350
2
에러가 뜨는데 잘 모르겠어요ㅠ
0
401
2
Install Packages 항목이 안보이는 이유가 뭘까요?
0
400
2
환경변수 Path 설정 방법
0
631
1
웹 브라우저 없는 스크랩핑 및 파싱 실습(1) - 인프런
0
333
1
웹 브라우저 없는 스크랩핑 및 파싱 실습(1) -git주소
0
475
3
download2-8-1. py질문
0
203
1
ip 차단 당하는 거 같은데 아무리 랜덤주고, sleep 줘도 안 되는데 다른 방법 더 있을까요??
0
645
1
인프런 환경이 바뀌어서 제나름대로 하는데
0
196
1
다시올려주신 예제파일로하는데
0
190
1
아직도 에러가뜨나보네요?
0
584
1

