본문 바로가기

카테고리 없음

[나도코딩 파이썬 활용편 웹스크래핑(13)] 다음 영화페이지에서 이미지 url(src) 가져오기

url의 변화에서 힌트를 얻는다.

년도 검색에 따라 url이 바뀌는데,

이 것을 응용해본다.

 

포스터 이미지를 바로 가져오는 동작을 구현한다.

포스터 이미지를 보려면

영화 순위 > 소개페이지 > 포스터 페이지

이렇게 단계를 거쳐 들어가야하는데,

 

웹스크래핑으로

바로 포스터페이지로 들어가보도록 한다.

 

이미지 가져오기

img 태그 내 클래스를 확인한다.

src에 이미지 링크가 담겨있다.

 

import requests
from bs4 import BeautifulSoup

res = requests.get("https://search.daum.net/search?w=tot&q=2019%EB%85%84%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&DA=MOR&rtmaxcoll=MOR")
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

images = soup.find_all("img", attrs={"class":"thumb_img"})

for image in images:
    print(image["src"])

이렇게 입력하면...

image["src"] <- 이렇게 입력하는건 언제나온 내용인지 모르겠지만.. 일단 이해해보기.

 

이 전에는 페이지에서 오류가 나던 것들도

이제는 잘 실행이 된다.

 

터미널에 이런식으로 표시된다.

커맨드 + 왼쪽클릭을 하면 이미지도 잘 표시된다.

 

그런데,

만약 앞에 http://가 없다면 제대로 표시가 안되는데,

따라서 if문을 다음과 같이 만들어 줄 수 있다.

 

from re import L
from traceback import print_tb
import requests
from bs4 import BeautifulSoup

res = requests.get("https://search.daum.net/search?w=tot&q=2019%EB%85%84%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&DA=MOR&rtmaxcoll=MOR")
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

images = soup.find_all("img", attrs={"class":"thumb_img"})

for image in images:
    # print(image["src"])
    image_url = image["src"]
    if image_url.startswith("//"):
        image_url = "http:" + image_url

    print(image_url)

// ...로 시작하는 이미지들은 앞에 http:를 붙여주도록 한다.

startwith() 함수로 ~로 시작한다는 조건을 만들어준다.

if image_url.startwith("//"):

 

그리고 image_url을 재정의해준다.

image_url = "http:" + image_url

 

print 함수는 탭으로 구분하지 않으면

if문 안에 갇히게 되므로 주의한다.