inflearn logo
강의

Course

Instructor

Introduction to Python and Creating Various Automated Applications Using Web Crawling

Extracting Necessary Data from the Web Using Python urllib (2)

urllib을 활용한 데이터 추출하기(2) 과제 질문한번더 합니다

153

gmg04051235

2 asked

0

한번더 질문 드립니다.

import sys

import io

import urllib.request as dw

from urllib.parse import urlencode

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

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

N_bannerUrl1=" https://nv.veta.naver.com/fxshow"

value1={

‘su’:’SU10079′

}

value2={

‘calp’:’1′

}

value3={

‘nrefreshx’:’1′

}

param1=urlencode(value1)

param2=urlencode(value2)

param3=urlencode(value3)

Naver_bannerUrl1=N_bannerUrl1+’?’+param1+’&’+param2+’&’+param3

print(Naver_bannerUrl1)

savePath1="d:/Web crowling study/section2/naver_banner1.jpg"

reqData1=dw.urlopen(Naver_bannerUrl1).read()

with open(savePath1,’wb’) as savefile1:

savefile1.write(reqData1)

Naver_bannerUrl2=" https://ssl.pstatic.net/tveta/libs/1226/1226129/0744cf34170d945cfd3f_20190118132726901.jpg"

savePath2="d:/Web crowling study/section2/naver_banner2.jpg"

reqData2=dw.urlopen(N_bannerUrl2).read()

with open(savePath2,’wb’) as savefile2:

savefile2.write(reqData2)

print("다운로드완료!")

서버측에서 변경되는 타이밍에 가져와서 빈 이미지 파일이 생성되는것 같다고 하셨는데

위 코드에서 네이버 왼쪽 베너 즉 Naver_bannerUrl1 경우에 직접jpg Url이 아닌 상위 url을 이용해서

왼쪽베너가 갱신되면 , 코드를 실행하였을 때 갱신된 이미지를 저장할 것이라고 생각했습니다.

왼쪽 베너는 브라우저를 보고있을 때 갱신 속도가 아주 느려서 같은 이미지가 왼쪽 베너에 오래동안 유지됩니다.

이럴경우는 우연히 서버측에서 변경되는 타이밍에 가져와서 그런것은 아니지 않나요?

이미지가 변경되는 타이밍에 저장이되서 그렇다면 이미지 갱신주기가 매우 짧아서 그 주기와 저장시기가 맞아야

하는것이라고 생각이들어서 다시 여쭤봅니다.

또 섹션 2에서 selenium 수업이 없는것 같습니다. beautifulsoup 강의는 있습니다.

웹-크롤링 python

Answer 1

0

niceman

답변드립니다.
현재 보내주신 코드 전체를 제가 리뷰 한 후 답변을 드릴 수 없는 관계로 정확한 소스코드를 리뷰하지는 않았습니다.
보통은 타이밍 문제에서 빈 파일이 생성되는 경우는 많습니다.
그리고 받고자 하는 이미지 2장 full url 정보를 복잡하게 작성하는 것 보다는
imgUrl1
imgUrl2
선언해서
형식으로 각각 테스트 해보시기 바랍니다.
또한 실제 브라우저가 아닌 경우에는
서버측에서 1. 브라우저에 내장되어 있는 pdf 뷰어가 있는지 여부

  1. fake-header 정보를 가졌는지 여부

를 체크해서 부가 정보를 Response 하지 않는 방법도 취하고 있습니다
저라면 이미지 url을 가지고 base64 구문으로 print문으로 출력해보고 단위테스트를 진행할 것같습니다.
https://stackoverflow.com/questions/43926563/how-to-read-bytes-from-a-image-url-jpeg-and-encode-in-base64-on-python-2-7?rq=1
섹션3에서 Selenium 수업이 있습니다.
아울러, 답변이 늦어질 수 있으니 급한 질문은 쪽지로 보내주세요.

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

344

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