-
C# 네이버 블로그 파싱하는 방법닷넷/C# 2017. 7. 21. 16:22반응형
진짜 네이버 블로그 소스는 프레임에 씌여있어서 네이버 블로그를 파싱하려면한 꺼풀 벗겨서 다시 한번 웹페이지를 불러와야한다.
1. 윈폼에 도구상자에서 WebBrowser 두 개를 놓는다.
2. 일반적인 네이버 블로그 url를 webBrowser1에 띄운다.
webBrowser1.Navigate("http://blog.naver.com/freecat27");
3. webBrowser1의 DocumentCompleted 이벤트에서 프레임에 씌여진 진짜 네이버 블로그 주소를 파싱하고,
webBrowser2에 그 주소를 띄운다.
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (e.Url.AbsoluteUri == webBrowser1.Url.AbsoluteUri)
{
HtmlDocument doc = webBrowser1.Document;
HtmlElement fm = doc.GetElementById("mainFrame");
string sfm = string.Format("http://blog.naver.com{0}", fm.GetAttribute("src"));webBrowser2.Navigate(sfm);
}
}
3. webBrowser2의 DocumentCompleted 이벤트에서 파싱작업을 한다.
다음 예시는 블로그 타이틀을 가져오는 방법이다.
private void webBrowser2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{if (e.Url.AbsoluteUri == webBrowser2.Url.AbsoluteUri)
{
for (int i = 0; i < mdoc.GetElementsByTagName("div").Count; i++)
{
HtmlElement d = mdoc.GetElementsByTagName("div")[i];if (d.GetAttribute("id").IndexOf("blog-title") > -1)
{
listBox1.Items.Add(d.InnerText);
}
}
}}
반응형'닷넷 > C#' 카테고리의 다른 글
How to format a datetime with slash in C# (0) 2017.09.05 C# Local host 가져오기 (로컬 IP 주소 확인하기) (0) 2017.08.24 C# 엑셀파일로 저장할 때 셀병합, 자동정렬, 선, 가운데 정렬 (0) 2017.06.26 C# 리소스 파일 관련 참고 자료 사이트 링크 (0) 2017.05.30 C# 바이너리 파일 읽기 및 클래스에 담기 (0) 2017.05.26