Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 전화번호찾기
- 심플네이버
- 이메일수집
- iostream.h
- 전번
- 폰번호정리
- 누난 너무 예뻐
- 메일수집
- esperanca.kr
- 이메일수집기
- 이메일추출
- 제2의 동방신기
- Visual Studio .NET 9.0 Express Edition
- VisualStudio 2003 .NET
- 이메일광고
- 네이버
- 네이버1위
- 자동화 서버
- 자동화 서버는 개체를 작성할 수 없습니다.
- 폰번호추출
- 비주얼 C++
- 김밥할머니 폭행사건
- 태마곡
- 김밥할머니 폭행 동영상
- esperanca
- 용역직원
- http://www.microsoft.com/downloads/
- Stand 4 U
- 절대참조
- 애러
Archives
- Today
- Total
BLOG ESPERANCA
C#,WebBrowser 컨트롤을 이용하여 웹 페이지 정보가져오기. 본문
최근 웹 페이지로 유용한 정보들이 많이 공개되고 있습니다.
이런 정보들을 가져다가 정리해 보면 좋을것 같아 수집하는 크롤러를 제작해 보았는데
단순히 string으로 처리를 하니 파싱하는 부분이 너무 복잡해져서, 이런 저런 고민을 하다 C# 윈폼에 내장되어 있는 browser 컨트롤을 사용해보았습니다.
먼저 Navigate 메소드를 사용해서 원하는 페이지로 접근합니다.
변수.Navigate("주소") 이런식이겠네요.
위의 페이지가 다 로드되면
DocumentCompleted 이벤트가 발생합니다. 이부분은 핸들링하시면 원하시는 페이지를 DOM으로 접근하실 수 있어요.
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
1. 링크 가져오기
foreach (HtmlElement el in webBrowser1.Document.Links)
{
string href = el.GetAttribute("href");
}
2. 특정 엘리먼트 값 가져오기
HtmlElement el = webBrowser1.Document.All["ctl00_ContentPlaceHolder1_lblAuthCode"];
string data = el.InnerText
3. 특정 엘리먼트 값 변경하기( checkbox - 체크하는 예제 )
HtmlElement el3 = webBrowser1.Document.All["ctl00_ContentPlaceHolder1_rbSearchContain_17"];
el3.SetAttribute("checked", "checked");
4. 특정 버튼 클릭하기
HtmlElement el = webBrowser1.Document.All["ctl00_ContentPlaceHolder1_btnContinue_19"];
object obj = el.DomElement;
System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
mi.Invoke(obj, new object[0]);
}
이런식으로 처리 하실 수 있습니다.
매크로 등에도 유용하게 쓰일 것으로 생각됩니다.
출처 http://thismoments.tistory.com/54