목표

결과

배우별 상세 URL 수집 코드

def urlList():
    all_tab = ['','?tab=month','?tab=year','?tab=ago','?tab=man']
    url_lst = []
    for t in all_tab:
        url = '<https://www.avdbs.com/menu/actor_ranking.php'+t>
        driver.get(url)
        wait = WebDriverWait(driver, 10)
        element = wait.until(EC.element_to_be_clickable((By.ID, 'actor_lst')))
        url_lst_tmp = driver.find_elements(By.XPATH, '//div[@class="box"]/div[1]/a')
        tmp = '<https://www.avdbs.com>'
        for u in url_lst_tmp[:30]:
            if tmp+u.get_dom_attribute('href') != tmp:
                url_lst.append(tmp+u.get_dom_attribute('href'))
    url_lst = list(set(url_lst))
    return url_lst

상세 URL에서 이미지 파일 가져오는 코드

tmp = '<https://www.avdbs.com>'
path = "D:/ITStudy/CatchV/AvList/"
cnt = 0
for u in url_lst:
    print(cnt)
    cnt += 1
    driver.get(u)

    wait = WebDriverWait(driver, 10)
    element = wait.until(EC.element_to_be_clickable((By.ID, 'contants')))

    kr_name = driver.find_element(By.XPATH, '//span[@class="inner_name_kr"]').text
    cn_name = driver.find_element(By.XPATH, '//span[@class="inner_name_cn"]').text
    en_name = driver.find_element(By.XPATH, '//span[@class="inner_name_en"]').text
    img_lst = []

    p_img = driver.find_element(By.XPATH, '//p[@class="profile_gallery"]/img').get_dom_attribute('src')
    img_lst.append(p_img)

    f_img = driver.find_elements(By.XPATH, '//div[@class="other_photo_list"]/ul/li[1]/a/img')
    if f_img:
        img_lst.append(f_img[0].get_dom_attribute('src'))
    etc_imgs = driver.find_elements(By.XPATH, '//img[@alt="{0}"]'.format(kr_name))
    for img in etc_imgs:
        img_lst.append(img.get_dom_attribute('src'))

    newpath = path+en_name
    if not os.path.exists(newpath):
        os.makedirs(newpath)
    for idx, img in enumerate(img_lst):
        img_data = requests.get(img).content
        with open(newpath+"/"+kr_name+"_"+str(idx)+'.jpg', 'wb') as handler:
            handler.write(img_data)

Untitled

Untitled

장애