[C#] skechers.com 스크래핑 웹페이지 Source 크롤링

[C#] skechers.com 스크래핑 웹페이지 Source 크롤링

CSharp
# 요구사항1. 전체 상품을 모두 가져와야 한다.2. 각 상품의 모든 보여주는 이미즈를 모두 저장해야 한다.3. 각 상품의 고유한 정보는 정리해서 모두 등록한다. # 작업환경Visual Stuido 2013 C# WinForm, MySQLPHP 7.0.4 (cli) skechers.com 작업은 조금 귀찮은 작업으로 이뤄졌습니다.일단 AJAX로 json 값을 가져와서 페이지에 로딩하기때문에 한번에 HTML 소스를 가져오지 못하였습니다. 위 사진과 같이 상품 진열 페이지가 일반적으로 보면은 웹페이지만은 AJAX로 추가되기 때문에 소스를 가져오는 방식이 조금 사물 다릅니다. 각 상품의 URL 주소를 번호를 주어서 아래와 같이 저장을 하여서 1~* 까지 번호로 저장을 하였습니다.물론 각기 원하는 방식으로 저장도 되지만은 숫자가 가장 편한 작업니다. 이후에 작업은 C#에서 처리 하지 않았습니다.PHP로 LOCAL로 처리 하였습니다
Read More

[C#] Webbrowser의 스크롤을 가장 하단으로 보내기

CSharp
웹브라우저를 사용할 경우에 가로 스크롤를 가장 하단으로 보내는것입니다. #파라미터 Bool # true : Top # false : bootom webBrowser1.Document.Body.ScrollIntoView(false); 사용하는 목적은 가로 스크롤이 길 경우에 화면에 보이는 부분을 가장 하단으로 하여서 지표를 보기 위해서 입니다.
Read More
[C#] 네이버 카페 글 목록 및 내용 수집

[C#] 네이버 카페 글 목록 및 내용 수집

CSharp
네이버 카페 글 목록 및 내용 수집 요청하신분이 네이버 카페인 '중고나라'의 게시물 수집을 요청하였습니다.그외에 요구 사항은 없었으며, 단순하게 수집해서 파일을 기록하는 작업입니다. 작업환경Visual Studio 2013, HtmlAgilityPack  사용 요구사항1. 네이버 로그인 처리2. 카페 특정 게시판 글 수집 ( 파일로 생성)3. 글 수집된 게시물의 내용 수집 ( 파일로 생성) 1. 프로그램 실행 화면 글 목록 수집 화면 2. 글 제목 저장 목록 (파일로 저장) 3. 글 내용 저장 목록 및 소스4. 글 내용 페이지 이렇게 구성 되어 있습니다. 해당 항목을 가지고 다른사람이 key값을 설정해서 다시 DB 작업을 하게 될 것 같습니다. 이 글이 작성된 시기는 2016년 3월 경이며, 제가 작업해드린분의 내용을 바로 공개 할 수 없어서 블로그 내용을 비공개로 해두다가 지금은 공개해도 될것 같아서 공개 합니다.그렇다고 하여서 소스를 공개 하는것은 아닙니다. 웹스크래핑 작업은 소스를 공개해서 무분별하게 도용되는 것을 막기 소스 공개를 하지 않는것이…
Read More

[C#] Using HTML Agility pack

CSharp
C# Using HTML Agility pack ExpressionDescriptionnodenameSelects all child nodes of the named node지정된 노드의 모든 자식 노드를 선택합니다/Selects from the root node루트 노드로부터 선택//Selects nodes in the document from the current node that match the selection no matter where they are상관없이 그들이 어디에 선택과 일치하는 현재 노드에서 문서의 노드를 선택하지 않습니다.Selects the current node현재 노드를 선택합니다..Selects the parent of the current node현재 노드의 부모를 선택@Selects attributes속성을 선택합니다 간단하게 설명을 기록하였습니다.매번 찾기보다는 블로그에 남겨 놓기 위해서 입니다.
Read More

[C#] 내장 IE 랜더링시 a 태그 새창을 현재창으로 하기

CSharp
[C#] 내장 IE 랜더링시 a 태그 새창을 현재창으로 하기 webbrowser을 이용할 경우에 HTML 태그에서 A 링크가 새창을 바로면은 바로 윈도우 기본 브라우저로 띄워 버립니다.이렇게 될 경우에 원하는 자료를 다시 받으려면은 URL를 다시 이동하거나 해야 하는데 그냥 새창 필요없이 바로 현재창의 페이지를 변경해서 나오도록 하는것입니다. // 새창을 내부에서 처리 하기 private void webBrowser1_NewWindow(object sender, CancelEventArgs e) { string newUrl = webBrowser1.StatusText.ToString(); webBrowser1.Navigate(newUrl ); e.Cancel = true; }
Read More

[C#] 모니터 off 하기

CSharp
[C#] 모니터 off 하기 public partial class MainForm : Form { const int WM_SYSCOMMAND = 0x0112; const int SC_MONITORPOWER = 0xF170; const int MONITOR_ON = -1; const int MONITOR_OFF = 2; const int MONITOR_STANBY = 1; [DllImport("user32.dll")] private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam); public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { Console.WriteLine(this.Handle.ToInt32()); int ScreenHeight = 0; System.Windows.Forms.Screen[] screens = System.Windows.Forms.Screen.AllScreens; if (screens.Length >= 1) { foreach (Screen screen in screens) { if (screen.Primary) { ScreenHeight = screen.Bounds.Height; Console.WriteLine(ScreenHeight); } } } else { ScreenHeight = screens[0].Bounds.Height; } } // 모니터 Off private void button1_Click(object sender, EventArgs e) { SendMessage(this.Handle.ToInt32(), WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF); } }
Read More
[C#] RSS 보기

[C#] RSS 보기

CSharp
[C#] RSS 보기 평소에 블로그를 자주 돌아 다니는 편입니다.그래서 RSS를 모아 보이 위해서 만들었습니다. 제작환경 .Net Framework4.5 C# Winform /  PHP 5.5.X  / Mysql 5.X 테스트환경 : Windows10 , Windows7 일단 프로그램 실행 화면 입니다.Web에서 내역을 볼수도 있지만은 컴퓨터 앞에서 웹브라우저는 켜기 싫고해서 만들었습니다. 서버가 각 RSS 주소에 맞춰서 XML 파싱해서 정보를 서버에 두고 있습니다.프로그램이 서버에 요청해서 그에 맞게 XML를 돌려주는것으로 만들었으며, 제가 프로그램을 켜 주지 않아도 RSS를 갱신해주기 놓치지 않고 확인해 볼 수 있습니다. 알림 기능은 현재 만들다가 말았습니다.프로그램으로 전달해서 notify를 할려다가 포기하고 서버에서 특정 단어가 들어오면은 Telegram bot API를 통해서 제게 알려주도록 되어 있습니다.굳이 해당 프로그램을 실행하지 않아도 스마트폰에서 받을 수 있기에 원하는 글을 놓치지 않아서 좋습니다. 텔레그램에서 받은 정보의 일부분 입니다.URL과 내용을 제 마음대로 가공해서 알려주기고 해당 정보를 보고 굳이 컴퓨터 앞이 아니라도 웹페이지에 접속해서 신선한(?) 글을…
Read More

[C#] webBrowser 에 HTML 또는 URL로 바로 가기

CSharp
[C#] webBrowser 에 HTML 또는 URL로 바로 가기 로컬 파일을 읽어 들여서 웹브라우저에 바로 표시 할 수 있습니다.알면 편하고 빠르게 할 수 있지만 모르면은 헤매일수 있기에 간단히 기록만 해 둡니다. # 소스파일로 표시하기webBrowser1.DocumentText = HTMLSource; #URL 로 가기webBrowser1.Navigate(URL);
Read More
[C#] herbalife 스크래핑

[C#] herbalife 스크래핑

CSharp
[C#] herbalife 스크래핑 로그인 처리가 힘들어서 C#으로 제작하게 되었습니다. 제작 : C# .NetFrameWork 4.5 사용 : Windows10(x86), Windows7(x86) 사용 라이브러리 : HtmlAgilityPack(https://htmlagilitypack.codeplex.com/) 1. 로그인 처리를 하고 원하는 페이지로 이동을 합니다. 이곳에서 현재 URL값과 요청한 URL 정보가 동일할 경우에만 작동을 하도록 하였습니다. 2. 카테고리를 가져와서 링크주소를 획득하고 List로 가지고 있습니다. 이때 카테고리 링크만 가지고 다시 한번더 페이지를 접속해서 각 상품의 URL 주소를 획득 합니다. 3. 각 페이지에 접속해서 원하는 정보를 추출하여서 가공후 DB에 저장을 합니다. 각 페이지 접속을 하기 때문에 숫자가 많을수로 대기 시작이 길어 집니다. 이 단계에서는 필요한 이미지 파일로 링크를 추출 하여서 저장을 합니다. 개인정보가 나오는 부분은 모두 캡쳐 하지 않았습니다. 해당 페이지의 제품을 검색하고 각 제품코드 및 설명 이미지를 가져와서 개인 DB화 시키는 작업을 한것에 대해서 간단히 캡쳐 해 놓은 것입니다.
Read More

[C#] winform 단축키(핫키) 설정

CSharp
[C#] winform 단축키(핫키) 설정 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { Keys key = keyData & ~(Keys.Shift | Keys.Control); switch (key) { case Keys.F: if ((keyData & Keys.Control) != 0) { MessageBox.Show("Ctrl+F"); return true; } break; case Keys.F5: MessageBox.Show("f5"); return true; break; } return base.ProcessCmdKey(ref msg, keyData); }
Read More

[C#] DateTime 표현 예제

CSharp
  형식 문자열설명 dd한 자리 또는 두 자리 날짜입니다. dd두 자리 날짜입니다. 한 자리로 된 날짜 값 앞에는 0이 옵니다. ddd세 문자로 된 요일 약어입니다. dddd요일의 전체 이름입니다. h12시간 형식의 한 자리 또는 두 자리 시간입니다. hh12시간 형식의 두 자리 시간입니다. 한 자리로 된 값 앞에는 0이 옵니다. H24시간 형식의 한 자리 또는 두 자리 시간입니다. HH24시간 형식의 두 자리 시간입니다. 한 자리로 된 값 앞에는 0이 옵니다. m한 자리 또는 두 자리 분입니다. mm두 자리 분입니다. 한 자리로 된 값 앞에는 0이 옵니다. M달을 나타내는 한 자리 또는 두 자리 숫자입니다. MM달을 나타내는 두 자리 숫자입니다. 한 자리로 된 값 앞에는 0이 옵니다. MMM세 문자로 된 달의 약어입니다. MMMM달의 전체 이름입니다. s한 자리 또는 두 자리 초입니다. ss두 자리 초입니다. 한 자리로 된 값 앞에는 0이 옵니다. t한 문자로 된 A.M./P.M. 약어이며, A.M.은 "A"로 표시됩니다. tt두 문자로 된 A.M./P.M. 약어이며, A.M.은 "AM"으로 표시됩니다. y한 자리 연도이며, 2001은 "1"로…
Read More