링크를 통해 차례로 이미지 복사를 진행하다

butiful soup을 사용하여 URL에서 그림을 복사해 보았습니다.
수집원은 내목판 총결산http://nogizaka46matomenoma.blog.jp/
뷰티풀 소스도 이해하기 어려운 부분이 있지만 대체로 잘됐다.
다만, 회귀적으로 하면 같은 이미지가 많아진다.이걸 해결할 방법이 있다면 알려주세요.

from urllib.request import urlopen
from bs4 import BeautifulSoup
import requests


def get_link (url):
    html = urlopen(url)
    soup = BeautifulSoup(html, 'lxml')
    link_list = []
    for i in soup.find_all('a'):
        link = i.get('href')
        if type(link) is str:
            if 'http' in link:
    # javascriptの何か?が混ざっている。よくわからないからtype=strとif ~ in で絞る。
                link_list.append(link)
    return link_list


def link_to_img(url):
    html = urlopen(url)
    soup = BeautifulSoup(html, 'lxml')
    img_list = []
    for i in soup.find_all('img'):
        link = i.get('src')
        img_list.append(link)
    return img_list


url = "http://nogizaka46matomenoma.blog.jp/"

img_name_list = []
for img in img_list:
    try:
        re = requests.get(img)
        if len(img.split('/')[-1]) > 20:
            img_name = img.split('/')[-1][-20:]
        else :
            img_name = img.split('/')[-1]
            with open('./' + img.split('/')[-1], 'wb') as f: # img_listフォルダに格納
                f.write(re.content)
            img_name_list.append(img_name)
    except:
        pass


big_pic_list = []
for i in range(len(img_name_list)):
    try:
        pic = Image.open(img_name_list[i])
        if pic.size[0] > 400 and pic.size[1] > 400:
            big_pic_list.append(pic)
    #  高さ、幅それぞれ500以上のものだけをリストにする。
    except:
        pass

100장 정도 모았다.

좋은 웹페이지 즐겨찾기