HTML 익명 유틸리티를 사용하여 URL에서 제목, 설명 및 이미지를 추출하고 싶습니다. 지금까지 이해하기 쉽고 도움이 될 수있는 예제를 찾을 수 없습니다.
일부 사람들이 예제를 통해 내가 제목을 추출하고, 설명을 제공하고, 이미지 시리즈에서 이미지를 선택할 수있는 사용자 선택권을 주도록 도와 주시면 감사하겠습니다. (링크를 공유 할 때 Facebook과 비슷한 점도 있습니다.)
업데이트 :
제목, desc 및 단추, .aspx 페이지에 텍스트 상자 & i 단추 코드 이벤트에 대한 코드를 다음과 같은 위치에 레이블이 있습니다. 그러나 모든 값에 대해 널을 리턴합니다. 내가 뭔가 잘못하고있을 수 있습니다.
다음 샘플 URL을 사용했습니다 .http : //edition.cnn.com/2012/10/31/world/asia/india/index.html? hpt = hp_t2
protected void btnGetURLDetails_Click(object sender, EventArgs e)
{
HtmlDocument doc = new HtmlDocument();
var response = txtURL.Text;
doc.LoadHtml(response);
String title = (from x in doc.DocumentNode.Descendants()
where x.Name.ToLower() == "title"
select x.InnerText).FirstOrDefault();
String desc = (from x in doc.DocumentNode.Descendants()
where x.Name.ToLower() == "description"
select x.InnerText).FirstOrDefault();
List<String> imgs = (from x in doc.DocumentNode.Descendants()
where x.Name.ToLower() == "img"
select x.Attributes["src"].Value).ToList<String>();
lblTitle.Text = title;
lblDescription.Text = desc;
}
위의 코드는 모든 변수에 대해 null 값을 가져옵니다.
이 코드를 수정하면
HtmlDocument doc = new HtmlDocument();
var url = txtURL.Text;
var webGet = new HtmlWeb();
doc = webGet.Load(url);
이 경우에는 제목 및 설명에 대한 가치 만 다시 얻습니다.
protected void btnGetURLDetails_Click(object sender, EventArgs e)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(txtURL.Text));
request.Method = WebRequestMethods.Http.Get;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
String responseString = reader.ReadToEnd();
response.Close();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(responseString);
String title = (from x in doc.DocumentNode.Descendants()
where x.Name.ToLower() == "title"
select x.InnerText).FirstOrDefault();
String desc = (from x in doc.DocumentNode.Descendants()
where x.Name.ToLower() == "meta"
&& x.Attributes["name"] != null
&& x.Attributes["name"].Value.ToLower() == "description"
select x.Attributes["content"].Value).FirstOrDefault();
List<String> imgs = (from x in doc.DocumentNode.Descendants()
where x.Name.ToLower() == "img"
select x.Attributes["src"].Value).ToList<String>();
lblTitle.Text = title;
lblDescription.Text = desc;
}