프로그램 을 통 해 다른 사이트 홈 페이지 에 표 시 된 정 보 를 자동 으로 읽 는 것 은 파충류 프로그램 과 유사 하 다.예 를 들 어 우 리 는 BaiDu 사이트 의 노래 검색 순 위 를 추출 하 는 시스템 이 있다.분석 시스템 은 얻 은 데이터 에 근거 하여 데이터 분석 을 하고 있다.업무 에 참고 자 료 를 제공 하 다.이상 의 수 요 를 완성 하기 위해 서 는 브 라 우 저 를 모 의 하여 웹 페이지 를 조회 하고 페이지 의 데 이 터 를 분석 한 다음 에 분석 한 구 조 를 정리 한 데 이 터 를 데이터 베이스 에 기록 해 야 합 니 다.그러면 우리 의 생각 은 1.HttpRequest 요청 을 보 내 는 것 입 니 다.2.HttpResponse 에서 돌아 온 결 과 를 받 습 니 다.특정 페이지 의 html 원본 파일 을 가 져 옵 니 다.3.데 이 터 를 포함 하 는 일부 소스 코드 를 추출 합 니 다.4.html 소스 코드 에 따라 HtmlDocument 를 생 성하 고 데 이 터 를 순환 적 으로 추출 합 니 다.5.데이터 베 이 스 를 기록 합 니 다. 프로그램 은 다음 과 같 습 니 다: //Url 주소 에 따라 웹 페이지 의 html 소스 코드 를 받 습 니 다. private string GetWebContent(string Url) { string strResult=""; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); //HttpWebRequest 요청 설명 request.Timeout = 30000; //연결 시간 초과 설정 request.Headers.Set("Pragma", "no-cache"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamReceive = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding("GB2312"); StreamReader streamReader = new StreamReader(streamReceive, encoding); strResult = streamReader.ReadToEnd(); } catch { MessageBox.Show("오류"); } return strResult; } HttpWebRequest 와 HttpWebResponse 를 사용 하기 위해 서 는 이름 공간 참조 using 을 입력 해 야 합 니 다. System.Net; 다음은 프로그램의 구체 적 인 실현 과정:private void button1_Click(object sender, EventArgs e) { //캡 처 할 URL 주소 string Url = "http://list.mp3.baidu.com/topso/mp3topsong.html?id=1#top2"; //지정 한 Url 의 원본 문자열 가 져 오기 strWebContent = GetWebContent(Url); richTextBox1.Text = strWebContent; //데이터 와 관련 된 그 소스 코드 를 꺼내다 int iBodyStart = strWebContent.IndexOf("", iTableStart); string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart + 8); //HtmlDocument 웹 브 라 우 저 생 성 webb = new WebBrowser(); webb.Navigate("about:blank"); HtmlDocument htmldoc = webb.Document.OpenNew(true); htmldoc.Write(strWeb); HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("TR"); foreach (HtmlElement tr in htmlTR) { string strID = tr.GetElementsByTagName("TD")[0].InnerText; string strName = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "MusicName"); string strSinger = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "Singer"); strID = strID.Replace(".", ""); //데이터 테이블 삽입 AddLine(strID, strName, strSinger,"0"); string strID1 = tr.GetElementsByTagName("TD")[2].InnerText; string strName1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "MusicName"); string strSinger1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "Singer"); //데이터 테이블 삽입 strID1 = strID1.Replace(".", ""); AddLine(strID1, strName1, strSinger1,"0"); string strID2 = tr.GetElementsByTagName("TD")[4].InnerText; string strName2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "MusicName"); string strSinger2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "Singer"); //데이터 테이블 삽입 strID2 = strID2.Replace(".", ""); AddLine(strID2, strName2, strSinger2,"0"); } //데이터베이스 삽입 InsertData(dt); dataGridView1.DataSource = dt.DefaultView; }