Python

python + vscode = 이미지 크롤링

85chong 2021. 7. 30. 17:19
728x90
반응형
SMALL
import urllib.request
from bs4 import BeautifulSoup



#아래의 코드를 실행하기 전 cmd명령어 로 lib 설치 먼저 해주어야함
#pip install requests
#pip install bs4





# #[웹 이미지 첫번째 1장만 다운로드 받기]
# #웹페이지의 소스를 가져온다.
# url = "https://www.kr.playblackdesert.com/BeautyAlbum?searchType=0&searchText=&categoryCode=0&classType=0,4,8,12,16,20,21,24,25,26,28,31,27,19,23,11,29,17,5&Page=1"
# fp = urllib.request.urlopen(url)
# source = fp.read();
# fp.close()

# #소스에서 img_area 클래스 하위의 소스를 가져온다.
# soup = BeautifulSoup(source, 'html.parser')

# #이미지 클래스를 지정한다.
# #on web source :  <p class="img_area" data-resize-parent="true">...
# soup = soup.find("p",class_ = "img_area")

# #이미지 경로를 받아온다.
# #on web source :  <img src="https://....>"
# imgURL = soup.find("img")["src"]

# #이미지 경로의 이미지를  다운로드한다.
# urllib.request.urlretrieve(imgURL,'00001.jpg')




#[웹 이미지 여러장 다운로드 받기]

#접근할 페이지 번호
pageNum = 1

#저장할 이미지 경로 및 이름 (data폴더(없으면 만들어놓을것)에 face0.jpg 형식으로 저장)
imageNum = 0
imageStr = "data/face"

while pageNum < 3:
    
    url = "https://www.kr.playblackdesert.com/BeautyAlbum?searchType=0&searchText=&categoryCode=0&classType=0,4,8,12,16,20,21,24,25,26,28,31,27,19,23,11,29,17,5&Page="
    url = url + str(pageNum)
    
    fp = urllib.request.urlopen(url)
    source = fp.read();
    fp.close()

    soup = BeautifulSoup(source, 'html.parser')
    soup = soup.findAll("p",class_ = "img_area")

    #이미지 경로를 받아 로컬에 저장한다.
    for i in soup:
        imageNum += 1
        imgURL = i.find("img")["src"]
        urllib.request.urlretrieve(imgURL,imageStr + str(imageNum) + ".jpg")
        print(imgURL)
        print(imageNum)

    pageNum += 1