2013-04-26 5 views
1

웹 사이트 긁기 도구로 사용할 데스크톱 응용 프로그램을 개발하려고합니다. 내 요구 사항은 사용자가 데스크톱 app.The 데스크톱 애플 리케이션에서 URL을 지정할 수 있어야합니다 웹 사이트에서 데이터를 긁어 및 데스크톱 애플 리케이션에 기록을 반환 asp.net 스크립트를 호출 할 수 있어야합니다.C# 데스크톱 응용 프로그램에서 ASP.NET 스크립트 호출

이 작업을 위해 웹 서비스 또는 ASP.NET 런타임을 사용해야합니까? ???

어떤 도움에 감사드립니다 :)

추가적인 세부 사항 스크래핑 활동이 이미은 아무 말은 HTMLAgility의 PKG를 사용

합니다. 이것은 웹 페이지에서 회사 이름 목록을 추출하는 코드입니다.

public static String getPageHTML(String URL) 
     { 
      String totalCompanies = null; 
      HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL); 

      IWebProxy myProxy = httpWebRequest.Proxy; 

      if (myProxy != null) 
      { 
       myProxy.Credentials = CredentialCache.DefaultCredentials; 
      } 

      httpWebRequest.Method = "GET"; 

      HttpWebResponse res; 

      res = (HttpWebResponse)httpWebRequest.GetResponse(); 

      HtmlDocument doc1 = new HtmlDocument(); 

      doc1.Load(res.GetResponseStream()); 

      HtmlNode node = doc1.DocumentNode.SelectSingleNode("//td[@class='mainbody']/table/tr[last()]/td"); 

      try 
      { 
       totalCompanies = node.InnerText; 
       return totalCompanies; 
      } 
      catch (NullReferenceException e) 
      { 
        totalCompanies = "No records found"; 
        return totalCompanies; 

      } 




     } 
+0

웹 서비스가 필요하다고 생각합니다. – Raika

+1

왜 WebClient를 통해 다운로드 할 수 없습니까? 검색된 html을 파싱하려면 HtmlAgilityPack을 사용 하시겠습니까? 또한 병렬로 작업하기 위해 멀티 스레딩의 기본 사항을 살펴보십시오. – Yahya

답변

1

당신은 데스크톱 응용 프로그램 내에서 HttpWebRequest을 사용할 수 있습니다, 난 (윈폼) 전에이 작업을 완료했습니다. 예를 들면 다음과 같습니다 : -

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(response); 

//Sample query 
var node = doc.DocumentNode.Descendants("div") 
      .Where(d => d.Attributes.Contains("id")).ToList(); 
+0

감사합니다 DGibbs.I이 시도하고 다시 와서 :) – SriniShine

0

이 (가/더 세부 사항을 포함하는 것이 도움이 될 더 구체적인 것)

하면

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("url"); 
var response = new StreamReader(req.GetResponse().GetResponseStream()).ReadToEnd(); 

그런 다음 응답에서 데이터를 분석 할 HtmlAgilityPack을 사용할 수 있습니다 ASP.NET 페이지가 이미 모든 긁힘 작업을 수행하고 있으며 ASP.NET 페이지에 액세스하는 것만으로도 HttpWebRequest를 사용할 수 있습니다.

http://msdn.microsoft.com/en-us/library/456dfw4f.aspx - 간단한 설명 & 자습서

해당 URL이 스크래핑 될 웹 사이트이고 프로젝트에 해당 ASP.NET 스크립트를 포함해야하는 경우 웹 서비스로 추가해야합니다.

+0

URL을 긁어 수 웹 사이트입니다 – SriniShine

+0

좋아. 그리고 사용하려는 ASP.NET 스크립트는 어디에 있습니까? 당신은 당신의 코드에서 그것을 참조해야하거나, (야생 추측) HTTP는 매개 변수로 URL을 보냅니다. 스크립트에 대한 자세한 내용을 입력하십시오. –

+0

나는 스크래핑 코드로 내 포스트를 편집했습니다. – SriniShine

0

두 가지 방법으로 수행 할 수 있지만 데스크톱 응용 프로그램에 웹 브라우저를 추가하여 수행 할 수도 있습니다. 나는 이유를 모르지만 결과는 훨씬 더 빠릅니다.

관련 문제