TIL

이미지 크롤링 경로 Error 해결

JayPro 2021. 11. 4. 01:54

오늘은 미니프로젝트를 하면서 크롤링을 이용하여 이미지 정보를 가져오는 도중 에러가 발생하였다. 내가 가지고 오고 싶은 사이트에서 검사를 통하여 아래와 같이 이미지 태그에 해당하는 경로를 잘 가져왔다고 생각하고 실행을 하였지만, DB에 이미지 정보가 쌓여도 화면에는 이미지가 나타나지 않는것이 아닌가?  

크롤링을 통해 이미지를 가져오기 위해 시도

같은 방법으로 제목과 날짜등은 아무 이상없이 크롤링이 되는데 이미지만 못 가져왔고 웹사이트를 통해 해당하는 이미지의 태그를 몇 번을 select경로를 가지고 와서 보았지만 경로는 틀림이 없었다. 그런데, img태그의 src를 클릭하니 현재소스라고 적힌 창이 뜨며 src에 추가로 주소가 적혀 있지 않겠는가? 

img의 src부분

그랬다. img태그의 src의 실제 소스주소는 아래의 주소였던 것이다. 두개를 비교하면 src의 앞부분에 주소가 추가되어 있었고, 다른 이미지에 해당하는 것도 같았기 때문에, 원래 가져왔던 select태그 경로에 추가된 주소부분만 문자를 추가하는 방법으로 적용하기로 했다.

원하는 img의 실제경로

그래서, baseUrl이라는 변수에 select경로로 읽어오지 못하는 src앞부분의 주소만 문자로 적어 지정해 주었고, 아래와 같이 두개의 값을 합쳐 img현재 소스의 값을 나타낼수 있도록 하여 이미지 값을 가져 올 수 있게 하였다. 

크롤링한 이미지를 가져오기 위해 추가한 모습

이렇게 해서 파일을 실행시켜본 결과, 아래의 사진과 같이 하나로 합쳐진 경로가 DB에 잘 저장되어 모습을 볼 수 있었다.

DB에 저장된 사진

이렇게 해서 무사히 화면에 이미지와 함께 제목과 개봉일까지 크롤링을 통해 화면에 가지고 올 수 있게 되었다.

이미지까지 크롤링에 성공한 화면

같은 방법으로 제목이나 개봉일과 같은 다른 정보는 잘 가져오는데 이미지를 못 가져 온다는 것은 이미지의 경로가 다르다는 가능성을 염두해 두고 실제 주소의 값이 있지 않은지 알아보아야하는 생각의 힘이 필요한거 같다고 느꼈다.

SMALL