2013-03-10 5 views
2

웹 URL (http://www.explosm.net/comics/3104/)을 입력하는 응용 프로그램을 만들려고하면 xpath (//*[@id="maincontent"]/div[2]/div[2]/div[1]/img)가있는 첫 번째 링크가있는 문자열이 자동으로 저장됩니다 나는 다운로드하고 싶다.xpath를 사용하여 링크를 추출하는 방법

나는 솔직히 이걸 어디서 시작해야할지 전혀 모른다. HtmlAgilityPackWebBrowser 클래스를 시도했지만, 어떻게해야하고 어떻게해야하는지 이해하는 데 도움이되는 것을 찾을 수 없었습니다.

도움이 될 것입니다.

+1

htmlagilitypack가 잘 작동합니다 :

당신이 다음 할 일은 이미지를 다운로드 할 수 있습니다. htmlagilitypack에 어떤 문제가 있습니까? – David

답변

2

HTMLAgilityPack으로 꽤 쉽습니다.

var w = new HtmlWeb(); 
var doc = w.Load("http://www.explosm.net/comics/3104/"); 

var imgNode = doc.DocumentNode.SelectSingleNode("//*[@id=\"maincontent\"]/div[2]/div[2]/div[1]/img"); 

var src = imgNode.GetAttributeValue("src", ""); 

가변 src

http://www.explosm.net/db/files/Comics/Matt/Dont-be-a-dickhead.png 값을 가질 것이다.

var request = (HttpWebRequest)WebRequest.Create(src); 
var response = request.GetResponse(); 

var stream = response.GetResponseStream(); 

//Here you have an Image object 
Image img = Image.FromStream(stream); 

//And you can save it or do whatever you want 
img.Save(@"C:\file.png"); 
+0

와우. 그것은 매우 간단 해 보입니다. 그 점에 대해 대단히 감사합니다. :) HTMLAgilityPack에 대한 간단한 질문입니다. 1.4.6 버전을 다운로드했는데 거기에 다른 하위 폴더가 손실되었습니다. 어느 것을 사용해야합니까? (net20, net40, net40-client, net45, sl3 등) – cr33p3r1n1134

+0

프로젝트에 사용중인 프레임 워크의 버전에 따라 다릅니다. –

+0

오. 오케이. 나는 버전 4를 사용하고 있으며, 당신이 준 코드는 완벽합니다. 당신의 도움을 주셔서 대단히 감사합니다. :) – cr33p3r1n1134

관련 문제