【问题标题】:Getting images and description of a webpage using its link in ASP.Net使用 ASP.Net 中的链接获取网页的图像和描述
【发布时间】:2012-09-27 06:00:18
【问题描述】:

嗨,我正在 asp.net 中创建一个网站,这就像社交网络。用户分享他们的更新和观点。我能够完成所有模块,但现在卡在一个要求上。

当用户输入更新状态栏时,我想从网页链接获取图像(不是页面截图)和描述。就像脸书一样。当我们输入一些链接时,它会获取其缩略图以及该页面的一些描述。

有人可以指导我如何在 asp.net 中做到这一点。有没有可用的插件或代码..

提前致谢

【问题讨论】:

  • 我觉得你应该看看this之前的帖子

标签: c# asp.net


【解决方案1】:

你需要:

  1. 下载网页

    var html = new System.Net.WebClient().DownloadString(url);

  2. 将其解析为 HTML 文档,或仅使用正则表达式查找所有图像标签。详情请查看answer

  3. 阅读元描述 - 再次已回答 here

你也可以看看Html Agility Pack

【讨论】:

  • 为 Html Agility Pack 点赞,这是获取图像的更好方法,因为您将把 html 视为它的本来面目,一种标记语言,而不仅仅是随机文本。如果项目稍后需要其他内容,它还可以更轻松地从页面中提取其他信息。
【解决方案2】:

您可以使用页面链接生成网页的预览缩略图并获取元描述。

这个previous post 和这个代码可能会有所帮助:

System.Windows.Forms.WebBrowser web = new System.Windows.Forms.WebBrowser();
web.ScrollBarsEnabled = false;
web.ScriptErrorsSuppressed = true;
web.Navigate("http://www.your_url.com/with_params");

while (web.ReadyState != WebBrowserReadyState.Complete)
Application.DoEvents();

//this is where we start search the DOM for our meta information and extract the content attribute into a usable string.
String meta = (web.Document.GetElementsByTagName("meta")[0]).GetAttribute("content");
System.Console.WriteLine("Meta Value is {0}", meta);

【讨论】:

  • 使用 System.Net.WebClient() 不是更容易吗?您建议添加 enteri system.windows.forms 命名空间只是为了获取一个页面以及一个浏览器对象,因为它是绝对没有必要的。
  • @MurtuzaKabul 你是对的,这是一个错误。我从我的旧代码中复制了这个片段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
相关资源
最近更新 更多