inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

좋은사람님 답변 부탁드립니다.

146

김표만

작성한 질문수 2

0

from bs4 import BeautifulSoup

import urllib.request as req

import urllib.parse as rep

import sys

import io

import os

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')

sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

base = "https://search.naver.com/search.naver?where=image&query="

quote = rep.quote_plus("사자")

url = base + quote

res = req.urlopen(url)

savePath ="C:imagedown\"

try:

if not(os.path.isdir(savePath)):

os.makedirs(os.path.join(savePath))

except OSError as e:

if e.errno != errno.EEXIST:

print("폴더 만들기 실패!!!!!")

raise

soup = BeautifulSoup(res, "html.parser")

li_list = soup.select("div.img_area._item > a.thumb._thumb > img")

for i, div in enumerate(li_list,1):

print("div =", div['data-source'])

fullfilename = os.path.join(savePath, savePath+str(i)+'.jpg')

print(fullfilename)

req.urlretrieve(div['data-source'],fullfilename)

print(i)

실행이 안됩니다. 4일째 구글링하면서 방법을 찾고 있지만 더 이상 찾을수가 없어 질문드립니다.

res = req.urlopen(url)

이 부분에서 에러가 납니다.

urlopen이 안되는 것 같은데.

이미 컴퓨터 포맷도 해보고 다시 재설치까지 해봤습니다.

더이상 방법을 알지 못해 글남깁니다.

아래는 오류 코드입니다.

Traceback (most recent call last):

File "C:section22-8-1.py", line 16, in

res = req.urlopen(url)

File "C:UsersM.KingAnaconda3envssection2liburllibrequest.py", line 163, in urlopen

return opener.open(url, data, timeout)

File "C:UsersM.KingAnaconda3envssection2liburllibrequest.py", line 472, in open

response = meth(req, response)

File "C:UsersM.KingAnaconda3envssection2liburllibrequest.py", line 582, in http_response

'http', request, response, code, msg, hdrs)

File "C:UsersM.KingAnaconda3envssection2liburllibrequest.py", line 510, in error

return self._call_chain(args)

File "C:UsersM.KingAnaconda3envssection2liburllibrequest.py", line 444, in _call_chain

result = func(args)

File "C:UsersM.KingAnaconda3envssection2liburllibrequest.py", line 590, in http_error_default

raise HTTPError(req.full_url, code, msg, hdrs, fp)

urllib.error.HTTPError: HTTP Error 403: Forbidden

[Finished in 0.474s]

python 웹-크롤링

답변 2

0

김표만

정말 감사드립니다 ^^

0

좋은사람

안녕하세요. 김민기님

고생 많이 하셨습니다. 결론부터 말씀드리면, 네이버에서 현재 막아놔서 그렇습니다.

소스 코드에

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = ‘utf-8’)

sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = ‘utf-8’)

아래 부분에 아래 코드를 추가하시면 정상적으로 실행됩니다.

opener = req.build_opener()

opener.addheaders = [('User-agent', 'Mozilla/5.0')]

req.install_opener(opener)

설명해드리면, 헤더 정보가 없는 크롤링은 안되도록 네이버가 현재 막아놨습니다.

그래서 위에 코드에 헤더(유저 에이전트) 정보를 심어서 보내면 정상적으로 작동합니다.

포멧까지 하시면 고생하셨습니다.

질문있으시면 쪽지로 주시면 답변이 조금 빠릅니다.

해당 부분은 강의 내용에 추가로 설명해 놓겠습니다.

지금 강의를 듣는 모든 학생들이 전부 안되는 상황이니 빠르게 조치하겠습니다.

좋은 발견해주셔서 감사합니다.

현재 예제에서 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