• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

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

19.01.23 23:18 작성 조회수 90

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 강의는 있습니다.

답변 1

답변을 작성해보세요.

0

답변드립니다.
현재 보내주신 코드 전체를 제가 리뷰 한 후 답변을 드릴 수 없는 관계로 정확한 소스코드를 리뷰하지는 않았습니다.
보통은 타이밍 문제에서 빈 파일이 생성되는 경우는 많습니다.
그리고 받고자 하는 이미지 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 수업이 있습니다.
아울러, 답변이 늦어질 수 있으니 급한 질문은 쪽지로 보내주세요.