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문 안에 갇히게 되므로 주의한다.