[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

[PHP] HTML문자중 특정 문자 치환하기

PHP
[PHP] HTML문자중 특정 문자 삭제 하기 // 유니코드 삭제 처리 function getDeleteUnicodeStr($str) { $str = preg_replace('@\x{0007}@u', ' ', $str); $str = preg_replace('@\x{0008}@u', ' ', $str); $str = preg_replace('@\x{000E}@u', ' ', $str); $str = preg_replace('/​/i', ' ', $str); return $str; }
Read More
[PHP] SHOEZOO 사이트 스크래핑

[PHP] SHOEZOO 사이트 스크래핑

PHP
[PHP] SHOEZOO 사이트 스크래핑 해당 사이트의 정보를 스크래핑 하여서 가공을 하는 작업입니다. 보시는것처럼 다양한 메뉴가 존재 하지만 원하는 정보를 가져오기 위해서는 각 링크의 속성이나 HTML 태그를 분석해야 합니다. 이번에는 간단하게 할 수 없는것이 브랜드와 사이즈도 있고 사용자가 선택할수 있는 정보가 많습니다. 일단은 목록페이지에서는 각 제품의 링크를 획득한 후에 다시 한번더 제품 상세 페이지에 들어가서 정보를 정확하게 수집을 해야 합니다. 제품 상세페이지를 보시면은 이미지도 5장정도 되고, 사이트를 선택할 수도 있어서 해당 옵션을 모두 가져와서 그에 맞게 각 데이터를 가공해야 합니다. 이 작업이 보기보다 상당히 시간이 소요 되며, 해당 작업을 위해서는 DB를 이용하여서 중복이나 동일이름이지만은 브랜드나 옵션이 다른것을 구분해서 작업을 해야 합니다. 스크래핑을 원하시는분은 공지사항을 참조해주시기 바랍니다.
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

[PHP] 티스토리 스킨 텍스트큐브에 적용하기

PHP
[PHP] 티스토리 스킨 텍스트큐브에 적용하기 티스토리용 스킨이 마음에 드는것이 있어서 가져와서 적용을해보니 되지 않는 부분이 너무 많았습니다.스킨파일이 HTML 파일에 대해서는 적절하게 수정을 하면은 사용을 할 수 있지만은 치환자에 대해서는 어떻게 손쓸 방법이 없어서... 결국은 PHP 파일을 수정하게 되었습니다. 해당위치에 파일의 원본을 최대한 보전하면서, 스킨의 기능을 이용하기 위해서 수정한것입니다.그래서인지 속도는 다소 느려지는 편입니다. 파일 위치 : interface/common/blog/list.php <!--?php /// Copyright (c) 2004-2016, Needlworks / Tatter Network Foundation /// All rights reserved. Licensed under the GPL. /// See the GNU General Public License for more details. (/documents/LICENSE, /documents/COPYRIGHT) if (!empty($listView)) { dress('list', $listView, $view); } else if (isset($list) && isset($skin)) { // 블로그 ID 가져오기 $blog_id = $context->getProperty('blog.id'); $listView = $skin->list; $itemsView = ''; foreach ($list['items'] as $item) { // 각 글의 페이지 정보를 획득 하도록 함. list($entries, $paging) = getEntryWithPaging($blogid, $item['id']);…
Read More

[MySQL] MySQL 최대 접속수 설정하기

Database
MySQL 최대 접속수 설정하기 ERROR 1040 (08004): Too many connections 에러발생시 해결법 mysql을 재시작 하지 않고 바로 설정 방법 #mysql 을 재시작 안해도 max_connections 값이 바로 적용된다. mysql> set global max_connections=300; mysql 설정파일(my.ini 또는 my.cnf ) 방법 #mysql을 재시작 해 주어야 한다. [mysqld] max_connections = 300 MySQL 접속수 관련 상태를 확인하는 방법 mysql> show variables like '%max_connect%'; +--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | max_connect_errors | 10000 | | max_connections | 100 | +--------------------+-------+ mysql> show status like '%CONNECT%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | Aborted_connects | 200 | | Connections | 300 | | Max_used_connections | 101 | ==> 현재 연결된 접속수 | Ssl_client_connects | 0 | | Ssl_connect_renegotiates | 0 | | Ssl_finished_connects | 0 | | Threads_connected | 101 | ==> 연결되었던 최대 접속수…
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

[PHP] cafe24 SMS 전송을 class로 만들어 보았습니다.

PHP
[PHP] cafe24 SMS 전송을 class로 만들어 보았습니다. SMS 전송 API를 사용할 일이 있었지만 기존에 소스는 모두 절차형이라서 계속 붙이고 하다보니 짜증이 났습니다.물론 절차형으로 간략히 소개해 놓으면은 좋지만은 스쿨호스팅에서는 class로 만들어서 떡하니 공개해주는데 FORM부터 모두 절차를 따르려고 하니 중간에 수정하기도 귀찮고 제 나름대로 변형을해서 사용하기에 계속 다른곳에 적용하기도 벅차서 그냥 한번 만들어보았습니다. 물론, 100%완벽한거은 아니고 당장 필요해서 만들어서 아직 다듬지도 못하고 이름도 대충대충 해 놓은것이라서 그냥 참고만 해주세요. <?php /** * sms 요청 * * @author * @version 2016 * @package */ class smsCAFE24 { private $smsSendUrl1 = "https://sslsms.cafe24.com/sms_sender.php"; // 전송요청 URL private $smsSendUrl2 = "https://sslsms.cafe24.com/sms_sender.php"; // HTTPS 전송요청 URL private $smsSendClintUrl1 = "https://sslsms.cafe24.com/smsSenderPhone.php"; private $smsReMainUrl = "http://sslsms.cafe24.com/sms_remain.php"; // 전송요청 URL private $smsListUrl = "http://smsapi.cafe24.com/sms_list.php"; // 전송요청 URL" private $userId = 'API ID'; //SMS 아이디. private $secure = 'API KEY'; //인증키…
Read More

[MySQL] 문자열 치환

Database
[MySQL] 문자열 치환 문자열 치환을 하기 전에 select로 먼저 데이터가 정상적으로 변경되는지 확인을 해보시는것이 좋습니다.UPDATE가 아니기 때문에 실제 DB에서는 변경이 이뤄지지 않으니 검정을 하기에 좋습니다. SELECT REPLACE(컬럼, '변경전문자열', '변경후문자열') AS 가상컬럼명 FROM 테이블 WHERE 컬럼 = '변경전문자열'; 위에서 모든 데이터를 확인을 하였다면은 실질적으로 이제 UPDATE를 하여서 DB에서 값을 변경을 하면 됩니다. UPDATE wp_posts SET 테이블 = REPLACE(컬럼, '변경전문자열', '변경할문자열') WHERE 컬럼 = '값'; UPDATE wp_posts SET 테이블 = REPLACE(컬럼, '변경전문자열', '변경할문자열'); 참초 : http://chongmoa.com/4555
Read More

[PHP] 여러개의 class를 한 class에서 사용하기

PHP
[PHP] 여러개의 class를 한 class에서 사용하기 class를 잘 만들어 놓아서 재 사용을 높이려고 하는데 한곳에서 여러개의 class를 사용하려고 하면은 상속이 1번뿐이여서 귀찮았습니다.그래서 한곳에서 여러개의 class를 사용하도록 한번 만들어 보았습니다. <?php class AA { public function aa() { echo 'aa class'; } } class BB { public function bb() { echo 'bb class'; } } class CC { public function cc() { echo 'cc class'; } } class DD { var $aaExt; var $bbExt; var $ccExt; public function __construct() { $this->aaExt = new AA(); $this->bbExt = new BB(); $this->ccExt = new CC(); } } class EE extends DD { public function __construct() { DD::__construct(); // parent::__construct(); echo $this->aaExt->aa; echo $this->bbExt->bb; echo $this->ccExt->cc; } } $ee = new EE; -- Result --aa classbb classcc clase 위체서 처럼 서로 다른 클래스를 한곳에서 모두…
Read More

[PHP] MSSQL 함수 목록

Database, PHP
[PHP] MSSQL 함수 목록 정말 PHP + MSSQL을 잘 사용하지 않는 조합이지만은 필요할때는 써야 할 이유가 있습니다.조합 자체가 좋지 않다고 해서 쓰지 말라고 하기 보다는 내가 어떻게 처리를 해 줄수 있을지를 고민을 해봐야 해서....  일단 함수 목록이 필요해서 정리 합니다.매번 PHP 홈페이지 들어가기 귀찮은 이유이기도 합니다.... mssql_bind — Adds a parameter to a stored procedure or a remote stored proceduremssql_close — Close MS SQL Server connectionmssql_connect — Open MS SQL server connectionmssql_data_seek — Moves internal row pointermssql_execute — Executes a stored procedure on a MS SQL server databasemssql_fetch_array — Fetch a result row as an associative array, a numeric array, or bothmssql_fetch_assoc — Returns an associative array of the current row in the resultmssql_fetch_batch — Returns the next batch of recordsmssql_fetch_field — Get field informationmssql_fetch_object — Fetch row as objectmssql_fetch_row…
Read More