Html 민첩성 팩. 웹 페이지로드 및 스크래핑

c# html-agility-pack web-scraping

문제

스크래핑 할 때 웹 페이지를 가져 오는 가장 좋은 방법입니까?

HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)oReq.GetResponse();

var doc = new HtmlAgilityPack.HtmlDocument();

doc.Load(resp.GetResponseStream());
var element = doc.GetElementbyId("//start-left");
var element2 = doc.DocumentNode.SelectSingleNode("//body");
string html = doc.DocumentNode.OuterHtml;

HtmlWeb().Load 보았습니다 HtmlWeb().Load 하여 웹 페이지를 가져옵니다. 로드하고 웹 페이지를 긁는 더 나은 대안인가?


좋아, 대신 해보겠습니다.

HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)oReq.GetResponse();

var doc = new HtmlAgilityPack.HtmlDocument();

doc.Load(resp.GetResponseStream());
var element = doc.GetElementbyId("//start-left");
var element2 = doc.DocumentNode.SelectSingleNode("//body");
string html = doc.DocumentNode.OuterHtml;

지금 나는 나의 doc 얻었고, 그렇게 mutch 속성을 얻지 않았다. SelectSingleNode 좋아하는 사람은 SelectSingleNode . 내가 사용할 수있는 유일한 것은 GetElementById 이며 작동하지만 클래스를 얻고 싶어합니다.

이런 식으로해야합니까?

HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)oReq.GetResponse();

var doc = new HtmlAgilityPack.HtmlDocument();

doc.Load(resp.GetResponseStream());
var element = doc.GetElementbyId("//start-left");
var element2 = doc.DocumentNode.SelectSingleNode("//body");
string html = doc.DocumentNode.OuterHtml;

인기 답변

HtmlWeb을 훨씬 쉽게 사용할 수 있습니다.

string Url = "http://something";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.