2010-12-20 4 views
3

내가 가지고있는 것처럼 URL :이 코드를 사용하여 해당 페이지에서 소스 코드를 다운로드 할
http://www.matweb.com/search/DataSheet.aspx?MatGUID=849e2916ab1541be9ff6a17b78f95c82matweb.com : 페이지 소스를 얻는 방법?

: 내가 할 때

private static string urlTemplate = @"http://www.matweb.com/search/DataSheet.aspx?MatGUID="; 

static string GetSource(string guid) 
{ 
    try 
    { 
     Uri url = new Uri(urlTemplate + guid); 

     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 
     webRequest.Method = "GET";    

     HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); 

     Stream responseStream = webResponse.GetResponseStream(); 
     StreamReader responseStreamReader = new StreamReader(responseStream); 
     String result = responseStreamReader.ReadToEnd(); 

     return result; 
    } 
    catch (Exception ex) 
    { 
     return null; 
    } 
} 

그래서 얻을 :

당신은하지 않습니다 쿠키가 활성화 된 것 같습니다. MatWeb 쿠키를 활성화해야합니다.

CookieContainer cc = new CookieContainer(); 
webRequest.CookieContainer = cc; 

내가 가진 :

당신의 IP 주소는 과도한 사용으로 인해 제한되었습니다

좋아, 내가 이해, 그래서 라인을 추가했다. 회사 나 인터넷 서비스 공급자를 통해 많은 사람들이 IP 주소를 공유 할 수있는 경우 문제가 발생할 수 있습니다. 불편을 끼쳐 드려 죄송합니다.

나는 이것을 이해할 수 있지만 웹 브라우저를 사용하여이 페이지를 방문하려고하면이 메시지가 표시되지 않습니다. 소스 코드를 얻으려면 어떻게해야합니까? 일부 쿠키 또는 http 헤더?

답변

4

아마 UserAgent가 마음에 들지 않습니다. 시도해보십시오.

webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)"; //maybe substitute your own in here 
+0

오 고마워요! 그건 :). BTW 내 자신의 UserAgent를 얻으려면 어떻게해야합니까? –

+0

브라우저에서 보내는 UserAgent를 얻으려면 다음 사이트와 같은 것을 시도해보십시오. http://whatsmyuseragent.com/ –

1

"과도한 사용"응답이있는 경우 회사에서 원하지 않는 일을하는 것처럼 보입니다.

+0

그는 자신의 프로그램을 실행하려고 할 때만이 메시지를 듣고 있다고 말했습니다. 따라서 그의 지적 재산권은 문제가되지 않습니다. –

+0

위와 같이 사용자 에이전트 인 것처럼 보입니다. – Broam

0

너무 빠른 페이지를 다운로드 중입니다.

브라우저를 사용하면 초당 최대 1 페이지를 얻을 수 있습니다. 응용 프로그램을 사용하면 초당 몇 페이지를 얻을 수 있으며, 아마도 웹 서버가 감지하고있는 것입니다. 따라서 과도한 사용.

+0

이 기능을 한 번 실행하더라도이 메시지가 표시되기 때문에 사실이 아닙니다. 너무 빠른 타운 로딩은 문제가 아닙니다. –

관련 문제