Base/Python

[Python] BeautifulSoup을 통한 이미지 스크래핑 하기

반응형

※환경은 anacond + jupyter에서 하였습니다.

 

크롤링을 하는 데 있어서 기본적으로 필요한 함수들이다. 없으면 anaconda prompt에서 pip install을 통해 받도록 하자

 

내가 크롤링하려는 사이트는 네이버다. 네이버에서 검색어를 입력하고 그 이미지를 가져오기로 하자. 

첫 번째로 url을 가져오자.

저렇게 검색어를 기준으로 앞에 url을 가져온다. 검색어를 입력하는 것에 따라 이미지를 가져오기 위해서이다.

 

base_url에 검색어 url을 넣어주고 

keyword에는 내가 넣을 검색어를 넣어주기 위해 input을 통해 검색어를 입력한다.

ImgCnt는 스크랩할 이미지 개수를 정해준다.

 

위와 같은 식으로 로직을 만들어준다. 내가 검색어를 입력하는 거에 따라 결과가 달라지는 크롤링 코드를 만들어보자.

 

사이트를 스크래핑하고 내가 원하는 부분이 어디 있는지 확인한다.

 

여기서 나는 img를 스크래핑하기 위해 아래와 같이 img를 가져온다.

find_all이라는 명령어를 통해 해당하는 부분을 모두 가져온다. 이 find_all은 리스트 형태 값을 하나씩 가져온다.

 

이 중  data-source 부분이 해당 이미지의 url인데 아래와 같은 방식으로 이 부분에 들어있는 값을 가져온다.

 

아래와 같이 리스트를 for문으로 돌려 각각의 이미지 값을 확인해본다. 여기서 ['data-source']라는 것을 지정해준다. 여기서는 BeutifulSoup의 기능이 작동해 해당 부분을 가져오게 끔 한다.

이렇게 이미지가 나오는 걸 확인하고 이제 이 url을 통해 이미지를 스크래핑해서 넣자.

 

주의할 점은 경로 부분에 image라는 폴더가 있어야 된다. 해당 경로는 꼭 자기가 원하는 곳으로 지정해주자.

 

이걸 실행하면 아래와 같이 해당 폴더에 image가 저장되는 것을 볼 수 있다.

 

 

 

 

반응형