본문 바로가기
Djnago/1차 프로젝트

닥터자르트 Dr.Jart+ 크롤링 Part 2

by UnoCode 2020. 8. 14.

part1 : 매인 페이지 가져오기

 

part2 :상세 페이지 가져오기

 

part3 : 리뷰 가져오기

 

이번 포스팅에는 닥터자르트의 상세 페이지를 크롤링을 해보겠습니다.

 

해당 내용은 개인 프로젝트를 위해 제작 되었으며. 개인 프로젝트 진행후 모든 데이터를 삭제 했음을 밝힘니다.

 

import requests
from bs4 import BeautifulSoup
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
import csv

chrome_option = webdriver.ChromeOptions()
chrome_option.add_argument("headless")
chrome_option.add_argument("-disable-gpu")
chrome_option.add_argument("lang-=ko_KR")

driver = webdriver.Chrome(
    "/home/spectre/바탕화면/Python/crawling/python/chromedriver",
    chrome_options=chrome_option,
)

data_list = []

def get_detail_data(url, number):
    driver.get(url)
    html = driver.page_source
    bs = BeautifulSoup(html, "html.parser")
    img1 = str()
    img2 = str()
    img3 = str()
    img4 = str()
    img5 = str()

    detail_info = bs.find("div",{"id":"tab_pdtDetail"})
    info_box = bs.find("div",{"class":"visualThumb"}).find_all("img")
    try:
        # print(info_box)
        img1 = info_box[0]["src"]
        img2 = info_box[1]["src"]
        img3 = info_box[2]["src"]
        img4 = info_box[3]["src"]
    except Exception as e:
        pass
    finally:
        return {
            "id": number,
            "image1": img1,
            "image2": img2,
            "image3": img3,
            "image4": img4,
            "detail_info": detail_info,
        }

CSV_PATH_PRODUCTS = "/home/spectre/바탕화면/wecode/10-DrMozart-backend/db/detail_url.csv"
# 파일읽기
with open(CSV_PATH_PRODUCTS) as in_file:
    data_reader = csv.reader(in_file)
    for row in data_reader:
        data_list.append(get_detail_data(row[1], row[0]))


# 해당 파일을 csv파일로 만들기
def csv_save(datas):
    f = open("products_detail.csv", "w", encoding="utf-8", newline="")
    wr = csv.writer(f)
    wr.writerow(
        ["id", "img1", "img2", "img3", "img4", "detail_info",]
    )

    for Info in datas:
        wr.writerow(
            [
                Info["id"],
                Info["image1"],
                Info["image2"],
                Info["image3"],
                Info["image4"],
                Info["detail_info"],
            ]
        )

    f.close()


csv_save(data_list)

 

위 코드 중 detail_url.csv를 가져오는 코드가 있습니다.

 

row[1] = Part1에서 분석했던 Product_url 정보이고

 

row[0] = Django를 사용하기에 Product Model의 id를 가져왔습니다.

 

해당 정보는 엑셀으로 가공을 하였습니다.

 

sample :

 

product_id product_url
1 product_url (part 1애서 크롤링한 정보)
2 product_url (part 1애서 크롤링한 정보)

가져온 정보 

 

 

 

 

다음 포스팅(part3) 에서는 상세페이지의 리뷰를 크롤링 하겠습니다.

 

감사합니다.

'Djnago > 1차 프로젝트' 카테고리의 다른 글

닥터자르트 Dr.Jart+ 크롤링 Part 3  (0) 2020.08.28
닥터자르트 Dr.Jart+ 크롤링 Part 1  (0) 2020.08.13
wecode 1차 프로젝트 후기  (0) 2020.08.05
[1차] 스크럼 방법  (0) 2020.07.22

댓글