윈도우 10 자동 업데이트 끄기

안녕하세요 오늘은 윈도우 10 자동 업데이트 끄는 법을 정리할게요.

업데이트를 자동으로 하면 편하긴 하지만 업무중에 갑작스럽게 윈도우 업데이트로 컴퓨터를 종료하라고 메세지가 나올때가 있는데요. 

이럴땐 미루기를 하면되긴 하지만 업무의 흐름이 끈겨 보면 저처럼 스트레스 받는 사람들도 있을거에요.

일단 서비스부터 중지를 해요.

실행창

실행창을 실행하기 위해선 오른쪽 하단 "검색하려면 여기에 입력하십시오. "에 "실행"이라고 입력후 엔터를 눌러요.

실행창

실행팝업창이 뜨는데요 거기에 services.msc라고 입력을 하고 확인을 눌러요.

서비스 화면

그럼 서비스 팝업창이 뜨는데요. 서비스 로컬항목을 보시면 Windows Update라고 보여요 더블클릭을 하면

설정내용을 볼수 있는데요. 

윈도우 업데이트 속성

윈도우 업데이트 서비스를 윈도우 시작시 자동으로 할지 수동으로 할지 사용안할지 설정할수 있어요. 

여기를 수동으로 설정하구요.

윈도우 업데이트 속성 서비스 상태 중지

서비스 상태를 보시면 실행 중 으로 나와요. 이걸 중지 하시고 확인을 눌러주세요. 

이것으로 다된것이 아니라 추가로 로컬그룹정책도 변경해주셔야 해요. 

실행

실행창을 다시 열어요.

 

gpedit.msc

실행 팝업창에 gpedit.msc를 입력해요.

로컬 그룹 정책 편집기

로컬 그룹 정책 편집기가 뜨는데요. 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성요소 -> Windows 업데이트 -> 자동업데이트구성 차례로 눌러요. 

자동업데이트 구성

그럼 자동 업데이트 구성이 나오는데 구성되지 않음 이라 나올거에요. 사용으로 체크를 하세요.

그럼 자동 업데이트  구성이 선택이 되는데 다운로드 및 자동 설치 알림으로 하시고 확인을 눌러주세요. 

그럼 윈도우 10 업데이트가 자동으로 되지 않을거에요. 

앞으로는 윈도우 하단 아이콘 -> 설정 -> 업데이트 및 보안 을 직접 누르셔서 직접 업데이트를 하셔야 해요.

windows10 업데이트

이상 도움이 되었으면 좋겠어요. 

 

 

 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

기장 일광 소도둑 소고기 무한리필 다녀왔어요.

일광역 바로 앞이라 주차장은 일광역 주차장을 이용하시면 되는데요.

유료주차장이라 소도둑을 이용하시면 주차권을 주거나 현금으로 줘요. 전 현금으로 받아서 주차요금을 냈답니다.

와이프와 기장 해안도로를 타고 드라이브를 하는 도중 발견을 했는데요. 

시간 나면 가봐야지 하다가 일요일 저녁에 들렀습니다.

 

소도둑 가게 입구

오픈한 지 얼마 되지 않아서 간판이 깨끗합니다. 

고기부위

고기는 소고기만 취급하는데요. 취급 부위는 갈비살, 토시살, 끝등심, 척로스트, 척아이롤, 부채살 등이 있었어요. 

미국산 소고기라 아직도 꺼려지시는 분들이 있으실거라고 생각되지만 저는 미국소가 가성비가 좋아 자주 먹어서 그런지 별로 꺼려지는 게 없었어요. 

메뉴판

메뉴는 무한제공뿐만 아니라 단품메뉴도 있는데요. 대부분 무한제공으로 드시는 것 같았어요. 

아무래도 무한리필이다 보니 상차림은 직접했어야했어요. 제가 갔던 날 바빠서인지 원래 그런 것인지는 모르겠지만 빨리빨리 상을 안차려 줘서 직접 다 가져왔어요. 

야채 소스 반찬

야채 소스 반찬류를 모아 놓았구요.

쌈용바

쌈용 야채와 샐러드를 모아놓았어요. 양념도 여기 있으니 챙겨 가시면 돼요.

수저와 그릇

각종 그릇과 수저 가위가 여기에 비치되어 있어요. 

소고기

생긴 것만 봐서는 부위를 모르겠어요. 

제가 고기를 잘 굽는 건지 고기 품질이 좋은 건지.. 입으로 들어가는지 코로 들어가는지도 모르고 먹었어요.

맥주

와이프는 맥주 한잔이 먹고 싶다고 해서 맥주를 마시고 술을 못 먹는 저는 콜라를 마셨어요. 

고기와 탄산음료의 만남 ~ ㅋ~ 정말 맛있어요. 

라면냄비

고기를 계속 먹다 보니 배가 불러서 후식으로 라면 하나 시켜서 와이프와 나눠먹었어요. 

너무 꿀맛이라 먹기 전 사진 찍는 걸 까먹었네요. 저희 말고도 다른 테이블도 라면을 많이 시켜 드셨는데요.

다들 잘 드시는 것을 봐서는 소고기를 먹은 후 라면은 꿀 조합인 거 같아요.

보통 소고기를 먹으면 후식으로 냉면이나 국수를 먹는데 라면을 파는 곳 이곳이 처음이었어요.

 

고기바

고기 바가 있는데 고기는 요청하면 직원이 테이블로 가져다줘요. 

이상으로 2만 원 초반대 가격으로 소고기를 무한으로 즐길 수 있는 소도둑에 대해서 정리해 보았는데요.

기장에 오시면 한번 들러보시는 것도 괜찮을 것 같아요. 

 

기장 일광 소도둑

 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

c# EXCEL 파일 읽기

C# 2020. 2. 25. 18:29

엑셀파일을 읽어서 데이터를 처리해야할때가 있습니다.

엑셀파일을 읽는 소스는 많고 공유도 많이 되어 있지만 엑셀데이터가 다양하고 예외상황도 많이 발생하여 정리합니다.

NuGet 에서 라이브러리를 설치합니다.

excel 파일을 읽기위해서 설치합니다.

윈도우 폼에서 OpenFileDialog를 추가합니다. 

OpenFileDialog 추가

button을 누르면 파일을 읽어와서 콘솔창에 출력하는것으로 해보겠습니다. 

using Microsoft.Office.Interop.Excel;
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

위와같이 추가해 줍니다. 

        Excel.Workbook wb = null;
        Excel.Worksheet ws = null;
        Excel.Application ap = null;

application = 엑셀라이브러리 몸통입니다.

workbook = 엑셀파일 데이터가 통째로 들어갑니다.

worksheet = 시트 데이터가 통째로 들어갑니다.

버튼을 클릭할때 이렇게 해서 데이터를 콘솔창에 찍어 보았습니다.

            try
            {
                if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    Console.WriteLine(OpenFileDialog1.FileName);
                    ap = new Excel.Application();
                    wb = ap.Workbooks.Open(OpenFileDialog1.FileName);
                    ws = wb.Sheets[1];
                    ap.Visible = false;
                    Range range = ws.UsedRange;
                    String data = "";
                    for (int i = 1; i <= range.Rows.Count; ++i)
                    {
                        for (int j = 1; j < range.Columns.Count; ++j)
                        {
                            if (range.Cells[i, j] != null && range.Cells[i, j].Value2 != null)
                            {
                                data += "위치 : " +i+" , "+ j +" > "+ ((range.Cells[i, j] as Range).Value2.ToString() + " ");
                            }
                            else
                            {
                                data += "위치 : " + i + " , " + j + " > "+"없음 ";
                            }
                            
                        }
                        data += "\n";
                    }
                    Console.WriteLine(data);

                    /*메모리 할당 해제*/
                    DeleteObject(range);
                    DeleteObject(ws);
                    DeleteObject(wb);
                    ap.Quit();
                    DeleteObject(ap);
                    /*메모리 할당 해제*/
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("에러: " + ex.Message);
            }

        }

Console.WriteLine(OpenFileDialog1.FileName); //읽어온 파일경로와이름을 출력합니다. 

ap = new Excel.Application(); 엑셀파일을제어할 애플리케이션을 생성합니다.

wb = ap.Workbooks.Open(OpenFileDialog1.FileName); 파일을 읽어서 wb에 넣어줍니다. 

 ws = wb.Sheets[1]; //첫번째 시트 를 ws로 넣어줍니다. 이름으로도 읽어올수 있지만 경우에 따라서 하시면 될것 같습니다.

                            if (range.Cells[i, j] != null && range.Cells[i, j].Value2 != null)
                            {
                                data += "위치 : " +i+" , "+ j +" > "+ ((range.Cells[i, j] as Range).Value2.ToString() + " ");
                            }
                            else
                            {
                                data += "위치 : " + i + " , " + j + " > "+"없음 ";
                            }

데이터를 출력합니다. 

 Console.WriteLine(data);

이상 엑셀파일 읽기를 정리합니다. 

참고 출처 : https://coderwall.com/p/app3ya/read-excel-file-in-c

 

Read Excel File in C# (Example)

A protip by teddy about excel, c#, and interop.

coderwall.com

참고 출처 : https://kwanghyuk.tistory.com/167

 

C# 에서 Excel 파일을 읽는 방법

1. Microsoft.Office.Interop.Excel 참조 준비 (Nuget 패키지 다운) 이제 C#에서 Excel을 불러오고, 쓰는 것이 가능하다. 2. File Path 입력 추가 Excel 파일을 읽기 전에 App에서 Excel파일의 경로를 알아야 불..

kwanghyuk.tistory.com

전체 소스코드

sunme.zip
1.06MB

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

독일의 가전제품 카처에서 나온 스팀청소기를 구매했어요.

모델은 SC2 SC3 SC4중에서 스팀 대기시간이 짧고 사용 중에 물 보충을 할 수 있는 SC3 모델을 선택했어요.

소비자 가격은 268,000원이지만 네이버 최저가 검색으로 23만원에 구매했어요.

전에 한경희 스팀청소기 핸드용을 사용해봤는데요 스팀량이 너무 적고 물보충하고 사용 대기시간이 길어 청소 중에 기다리는 시간이 많아 청소의 흐름이 끈기고 피로도가 증가했어요.

바닥용 스팀청소기도 잘 사용했었는데 단점이 너무 무거운 게 단점이었어요.

전에 사용했던 이력이 있어 이런 단점들을 개선한 제품을 사고 싶었고 유튜브로 SC3모델에 대한 영상을 보니 믿고 구매할 수 있었어요.

https://www.youtube.com/watch?v=kq9EPbh3-Dw&t=1076s

부엌에 기름때로 인하여 청소포로 열심히 하였지만 힘만들고 조금만 시간이 지나면 원래대로 돌아왔어요.

바닦에 기름때가 생기는것도 의문이지만 밟으면 느낌이 별로여서 좀더 편하게 청소하기 위해서 스팀 청소기를 구매하기로 했어요.

스팀청소기를 하나 구매하기위해 검색을하니 카처제품이 가정용 스팀청소기 1인자인거 같았어요.

 

카처박스

 

제품이 오자마자 박스를 개봉하여 청소를 했어요.

 

거실

 

거실이 반들반들해졌어요. 확실히 가볍고 편하네요.. 스팀청소기가 걸레 위에 붙어서 무거웠던 예전제품과는 달랐어요. 

 

가스

 

부엌 가스렌지도 음식물과 기름이 튀어서 물청소포로 청소를 하였는데 오늘은 스팀으로 청소를 했어요.

평소보다 훨씬 수월하게 청소가 되었는데 뭔가 더 맑은 느낌이 들었어요. 색상도 그렇구요.

 

식탁

 

고추장, 음식기름 등으로 눌러붙는데 바로바로 안딱으면 정말 지우기 힘들어요.

스팀뿌려준후 물걸레청소포로 스윽 하니 깨끗해지더군요.. 속이 정말 시원했어요.

 

바닥

 

청소를 한후 한쪽에 정리해 보았어요.

 

카처 스팀청소기 SC3

 

코드정리와 호스 정리가 불편하지만 청소중에 물보충을 바로할수 있고 30초정도 기다리면 바로 스팀을 사용할수 있어서

성격급한 저에겐 딱이었어요. 30초라는 시간이 그렇게 안길더라구요. 

청소도 깔끔하게 잘되어 앞으로 집청소가 재미있어 질것 같습니다.

남자들의 장난감 카처 SC3 ~ 청소가 즐거워 져요.

주말에 유리창도 시간내서 스팀으로 청소 쫘악 해야겠어요.

이상 카처 SC3 스팀청소기 사용후기였어요.

최근에 새로 찍었어요.

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

정관신도시 공원1번지 식육식당을 소개합니다.

와이프가 요즘 도로 주행 연습으로 기장 아세아자동차 운전전문학원에 다니고 있어요.

저녁 퇴근을 마친 후 와이프와 함께 저녁을 먹기로 하고 샤부샤부 집으로 향하던 중 공원1번지 식육식당을 발견했어요.

급히 소고기 먹는 것으로 계획을 변경하고 들렀어요.

공원1번지 복도

엘베에서 내리자 복도에 소의 부위별로 설명을 해 놓았고 오른쪽엔 식육점 왼쪽엔 식당이 보였어요.

먼저 식육점에 들어가서 고기를 살펴보니 가족끼리 먹을 수 있게 다양하게 준비를 해 놓았어요.

공원1번지 식육점
공원1번지 식육점

그렇게 크지 않았지만 양념소갈비부터 갈빗살 부챗살 등심 안심 육회 등 여러 부위를 취급하고 있었어요.

모듬패키지로 하나 선택을 했는데 육회도 한 접시 포함되어 있었어요.

한상차림

자리를 잡고 고기를 구웠어요.

고기

식육식당이지만 불판은 조금 별로였어요. 1회용 같았는데 난 이런 불판을 별로 좋아하지 않아요.

 

육회

육회는 주먹만 하게 양념과 뭉쳐서 배와 같이 나왔어요.

역시 고기는 소고기가 제일 맛있는 거 같아요.

입으로 들어가는지 코로 들어가는지 모르게 둘이서 순식간에 먹어치웠어요.

먹고 나니 메뉴판도 눈에 들어왔어요.

메뉴판

된장찌개에 공깃밥을 추가로 시킨 뒤 맛있게 먹고 계산을 하고 나왔어요.

계산대

계산하면서 차를 가져왔다고 하면 주차카드를 준다 2시간 무료 이용 가능해요.

그 외 셀프바 코너 사진을 첨부할게요.

가족과 함께 들리기 편한 공원1번지 식육식당인 거 같아요.

 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

울산삼산동카페 공감각적심상언양맛집 언양전통불고기 석쇠불고기

안녕하세요. 가족과 함께 언양에서 산책후 언양전통불고기집에서 석쇠 불고기를 먹고 왔습니다.

가족과 함께 차량을 몰고 언양으로 향했습니다. 

처음은 한옥카페 농도를 찾았는데요. 노키즈존이라서 5개월인 은호와 함께 들어가지 못해 주변 개천에서

산책을 하였습니다. 

 

언양태화강
언양태화강변

주차를 하고 산책을 하니 저녘시간이 되었습니다. 

산책을 끝나고 나니 허기지고 해서 근처 식당을 찾았습니다. 

 

언양 전통불고기

언양전통 불고기 간판이 보이더군요. 아. 건물을 보니 예전에 몇번 왔었던 가게가 보입니다. 

언양전통불고기

가게이름따위는 기억하지 않았는데 지붕이랑 입구가 리모델링된거 같네요. ㅎㅎㅎ 근처 깨끗한 건물에 고기집이 많이 생겨서 그런것 같습니다. 

제기억으론 복도에 걸린 사진중 노무현 전대통령과 찍은 사진이 있었던거 같았는데 찾아보니 있네요 ㅎㅎ

언양불고기 한상

석쇠불고기를 2인분 주문하였습니다. 

석쇠불고기

석쇠불고기의 경우 요리가 다 되어서 나옵니다. 

가격은 1인분에 2만1천원이고 양념불고기를 먹고 싶다면 강력추천합니다. 

식사를 마친후 구글 후기를 남기며 집으로 복귀 하였습니다. 

 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

 

오래전 만화를 소년중앙이라는 만화책을 보면서 만화책을 입문하였다. 

이후 아이큐점프 소년챔프 등 소년만화들이 나왔는데 이주에 한번 구매해서 보는 맛이 쏠쏠했다. 

중학생이 되니 동네에 열린글방이라는 도서대여점이 생겼다. 

처음 생긴 도서대여점 나의 눈은 자연스럽게 만화책 코너로 가게 되었는데. 300원이라는 돈으로 만화책 한 권을 빌려볼 수 있었다. 

나는 책읽는것을 좋아했었는데. 열린글방에 있는 만화책이라는 만화책은 다 빌려봤던 것 같다. 

그렇게 성인이되고 직장생활을 하니 영원할 것만 같았던 도서대여점들도 아이패드 태블릿 등장과 함께 사라지기 시작했다. 

만화책을 빌려보고 싶지만 빌려볼수 없는... 현실.. 그 빈자리를 웹툰이 채워주기도 하였지만. 

예전 느낌이 안나온다. 재미도... 

그런데 새로운 책방이 생겼다. 

카페라는 형식으로 마나모아, 마나보다, 마나보나, 콩툰, 썸툰, 놀숲 등 만화카페가 우후죽순 생겼다. 

시설도 깔끔하고 시간안에 몇 권을 보던 상관이 없다. 

한 번씩 종이로 보는 만화책을 보고 싶다면 만화카페에 들러보자.

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

홈페이지를 구축하다보면 기존 도메인과 개발도메인 로컬 도메인등 여러 주소를 사용할 경우가 있습니다.

저의 경우 홈페이지 구매후 신규 개발을 들어 갔는데 이름역시 디지털아트에서 디지털365치과의원으로 변경되어 

홈페이지를 신규개발한후 365에 맞는 도메인 https://digital365365.com/ 를 구매하여 설정하였고

기존에 운영중인던 도메인 dadentalclinic.com 도메인과 디지털365치과.com 등을 추가로 설정하였습니다.

그런데 블로그나 사이트 등록시 https://digital365365.com/ 로 하면 좋았을텐데 여러가지 도메인들을 사용하게 되었습니다.

그래서 도메인을 임의로 통합시키는 작업을 해주었습니다. 

<beans:bean id="metaInterceptor" class="com.sms2019.interceptor.MetaInterceptor"></beans:bean>

인터셉터 를 하나 만들어 줍니다. 

인터셉터 내용은 아래와 같습니다.

String m_url = request.getRequestURL().toString();
		smsp.print_String("m_url :" + m_url);
		if(m_url.contains("검사주소 넣기"))
		{
			smsp.print_String("바른주소");
		}
		else if(m_url.contains("http://localhost"))
		{
			smsp.print_String("로콜주소");
		}
		else
		{
			smsp.print_String("그외 주소다.");
			String new_addr = "https://digital365365.com"+originalURL;
			response.sendRedirect(new_addr);
		}

이상입니다. 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

C# 인스타그램 이미지 피드 가져오기

화면 구성을 간단히 하였습니다. 

화면디자인

수치과인스타그램 A태그 및 이미지 피드를 가져올것입니다.  수치과 인스타그램 버튼을 누르면 할작업을 정리합니다.

찾아보니 C# 은 htmlagilitypack 주로 사용하는것 같았습니다. 

하지만 자바에서 Jsoup를 사용해본 경험이 있어 기능도 부실하고 불편했습니다. Jsoup c#버전이 있더군요. 

NSoup 라고 합니다. c#에도 Selenium이 있습니다. 이것들을 활용해서 데이터를 가져와 보겠습니다. 

NuGet패키지 관리

NuGet으로 오픈소스들을 받아 봅니다. 

NSoup, Selenium.WebDriver, Selenium.WebDriver.ChromeDriver 등을 검색하여 설치합니다. 검색은 Nsoup,selenium으로 충분합니다.

오픈소스 설치

마우스 클릭시 실행할 소스 내용입니다.

 IWebDriver driver = new ChromeDriver(); //Navigate to google page 
            IJavaScriptExecutor js;

            js = (IJavaScriptExecutor)driver;
            String base_url = "https://www.instagram.com/soodental9/";
            driver.Navigate().GoToUrl(base_url); //Close the browser 
            driver.Manage().Window.Size = new System.Drawing.Size(1614, 862);
            js.ExecuteScript("window.scrollTo(0,0)");
            NSoup.Nodes.Document doc = NSoupClient.Parse(driver.PageSource.ToString());
            Console.WriteLine(doc.Title);
           
            NSoup.Select.Elements linksOnPage = doc.Select(".v1Nh3.kIKUG._bz0w"); //클래스.. 
            int i = 1;
            foreach (NSoup.Nodes.Element page in linksOnPage)
            {
                Console.WriteLine("count : " + i++);
                Element link = page.Select("a").First();
                String linkHref = link.Attr("href");

                //System.out.println("a href : " + base_url + linkHref);
                Console.WriteLine("a href : " + base_url + linkHref);
                Element img = page.Select("img").First();
                //String imgtag = img.OuterHtml();
                String imgtag = img.Attr("src");
                Console.WriteLine("img : " + imgtag);                
            }
            driver.Close();

데이터를 가져와서 콘솔창에 찍어보니 잘가져옵니다.

콘솔창내용

이제 db에 연결하여 데이터를 잘 넣으면 될것 같습니다. 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

범일동 수치과 홈페이지를 새로 작성하고 있었습니다. 

http://soo-dent.com/

 

부산 범일동 수치과의원

부산 범일동 치과 임플란트 틀니 사랑니 충치치료 신경치료 보철치료 심미치료 스케일링, 부산임플란트, 서면임플란트, 지르코니아

soo-dent.com

인스타 연동이 안되어 있습니다. 인스타를 사진을 가져와 볼려고 했습니다.

기존 인스타그램 가져오는 api가 지원이 중단되었습니다. 

https://www.instagram.com/developer/

 

Instagram Developer Documentation

 

www.instagram.com

인스타그램 중단문구

 Instagram Basic Display API뭔가 싶어 들어가서 따라해보니 잘 안되어 있네요.  

가이드문서가 정리가 잘 안되어 있어서 구글검색을해보니 크롤링해서 사진을 가져오는 분들이 보였습니다.

저도 크롤링으로 가져오기로 합니다. 

일단 크롤링으로 데이터를 가져와보니 인스타내용이 보이지 않았습니다.

인스타는 자바스크립트소스를 보내주고 사용자환경에서 스크립트를 실행하여 데이터를 받아오는 형태입니다.. 

셀레니움으로 하는 방법이 있던데 일반 사람이 접속해서 스크립트가 실행된후 브라우저 데이터값을 가져올수 있었습니다.

일종의 자동화 도구인데 자바역시 지원하여 정리 합니다. 

셀레니움을 받아 설치를 합니다. 

https://www.seleniumhq.org/ 에서 윈도우 버전의 셀레니움을 받습니다. 

<!-- 크롬 셀리니움 -->
		
		<dependency>
	        <groupId>org.seleniumhq.selenium</groupId>
	        <artifactId>selenium-java</artifactId>
	        <version>3.141.59</version>
	    </dependency>

pom.xml 에 추가합니다. 

   //WebDriver
	    private WebDriver driver;
	    private WebElement element;
	    //Properties
	    public static final String WEB_DRIVER_ID = "webdriver.chrome.driver";
	    public static final String WEB_DRIVER_PATH = "chromedriver.exe";

WEB_DRIVER_PATH 를 잘설정합니다.

 System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
	        driver = new ChromeDriver();
	        base_url = "https://www.instagram.com/soodental9/";
   driver.get(base_url);

이러면 인스타그램 페이지 내용을 가져옵니다. 

 Document doc = Jsoup.parse(driver.getPageSource());
	            // HTML 문서의 타이틀 추출하기
	    		System.out.println("HTML TITLE : " + doc.title());

가져온내용을 JSOUP 를이용하여 파싱을 합니다. 

크롬디버그모드로 본 소스

소스에서 가져와야될 부분을 찾습니다. 

Elements tables = doc.select(".ySN3v"); //클래스..
	    		Elements linksOnPage = tables.select(".v1Nh3.kIKUG._bz0w"); //클래스..

데이터를 가져와서 출력해보았습니다. 

int i=1;
				 for (Element page : linksOnPage) {
					System.out.println("count : "+i++);
					Element link = page.select("a").first();
					String linkHref = link.attr("href"); 
					System.out.println("a href : "+base_url+linkHref);
					Element img = page.select("img").first();
					String imgtag = img.outerHtml();
					System.out.println("img : "+imgtag);
				 }

인스타 그램 내용.

테스트 페이지를 만들어서 위내용을 붙여 넣어 봅니다. 

이미지가 잘 보이네요.

img 태그와  a태그를 db에 넣어서 불러와서 사용하면 되겠습니다. 내용갱신은 하루에 한번 하도록 하면 되겠네요.

아래는 소스 전체 내용입니다. 

package com.sms2019.da;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class instagram_Selenium {
	
	 public static void main(String[] args) {
		 
	        instagram_Selenium selTest = new instagram_Selenium();
	        selTest.crawl();
	    }
	 
	    
	    //WebDriver
	    private WebDriver driver;
	    private WebElement element;
	    //Properties
	    public static final String WEB_DRIVER_ID = "webdriver.chrome.driver";
	    public static final String WEB_DRIVER_PATH = "chromedriver.exe";
	    
	    //크롤링 할 URL
	    private String base_url;
	    public instagram_Selenium() {
	        super();
	        //System Property SetUp
	        System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
	        driver = new ChromeDriver();
	        base_url = "https://www.instagram.com/soodental9/";
	    }
	 
	    public void crawl() {
	        try {
	            //get page (= 브라우저에서 url을 주소창에 넣은 후 request 한 것과 같다)
	        	int waittime=10;
	            driver.get(base_url);
	            JavascriptExecutor js = (JavascriptExecutor) driver;
	          
	            //System.out.println(driver.getPageSource());
	            Document doc = Jsoup.parse(driver.getPageSource());
	            // HTML 문서의 타이틀 추출하기
	    		System.out.println("HTML TITLE : " + doc.title());
	    		Elements tables = doc.select(".ySN3v"); //클래스..
	    		Elements linksOnPage = tables.select(".v1Nh3.kIKUG._bz0w"); //클래스..
	    		int i=1;
				 for (Element page : linksOnPage) {
					System.out.println("count : "+i++);
					Element link = page.select("a").first();
					String linkHref = link.attr("href"); 
					System.out.println("a href : "+base_url+linkHref);
					Element img = page.select("img").first();
					String imgtag = img.outerHtml();
					System.out.println("img : "+imgtag);
				 }
				 System.out.println("======================================================");
	    
	        } catch (Exception e) {
	            
	            e.printStackTrace();
	        
	        } finally {
	            driver.close();
	        }
	 
	    }
}
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,