Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从url指向的页面获取数据_C#_Asp.net - Fatal编程技术网

C# 从url指向的页面获取数据

C# 从url指向的页面获取数据,c#,asp.net,C#,Asp.net,给定一个Url,我希望能够捕获该Url指向的页面的标题 作为其他信息-例如页面上第一段的文本片段甚至可能是页面上的图片 Digg.com在您提交url时可以很好地做到这一点 如何在.Net c#中完成类似的操作?您正在寻找的,它可以解析格式错误的HTML文档。 您可以使用其HTMLWeb类通过HTTP下载网页 您还可以使用.Net通过HTTP下载文本。 但是,它不会帮助您解析HTML。您正在查找,它可以解析格式错误的HTML文档。 您可以使用其HTMLWeb类通过HTTP下载网页 您还可以使

给定一个Url,我希望能够捕获该Url指向的页面的标题 作为其他信息-例如页面上第一段的文本片段甚至可能是页面上的图片

Digg.com在您提交url时可以很好地做到这一点

如何在.Net c#中完成类似的操作?

您正在寻找的,它可以解析格式错误的HTML文档。
您可以使用其
HTMLWeb
类通过HTTP下载网页


您还可以使用.Net通过HTTP下载文本。
但是,它不会帮助您解析HTML。

您正在查找,它可以解析格式错误的HTML文档。
您可以使用其
HTMLWeb
类通过HTTP下载网页


您还可以使用.Net通过HTTP下载文本。
但是,它无法帮助您解析HTML。

您可以尝试以下方法: 一旦有了缓冲区,您就可以处理它,查找段落或图像HTML标记以提取返回数据的部分。

您可以尝试以下方法:
一旦有了缓冲区,您就可以处理它,查找段落或图像HTML标记以提取返回数据的一部分。

您可以使用如下函数提取页面标题。您需要修改正则表达式以查找(比如)文本的第一段,但由于每个页面都不同,这可能会很困难。但是,您可以查找元描述标记并从中获取值

public static string GetWebPageTitle(string url)
{
   // Create a request to the url
   HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;

   // If the request wasn't an HTTP request (like a file), ignore it
   if (request == null) return null;

   // Use the user's credentials
   request.UseDefaultCredentials = true;

   // Obtain a response from the server, if there was an error, return nothing
   HttpWebResponse response = null;
   try { response = request.GetResponse() as HttpWebResponse; }
   catch (WebException) { return null; }

   // Regular expression for an HTML title
   string regex = @"(?<=<title.*>)([\s\S]*)(?=</title>)";

   // If the correct HTML header exists for HTML text, continue
   if (new List<string>(response.Headers.AllKeys).Contains("Content-Type"))
      if (response.Headers["Content-Type"].StartsWith("text/html"))
      {
         // Download the page
         WebClient web = new WebClient();
         web.UseDefaultCredentials = true;
         string page = web.DownloadString(url);

         // Extract the title
         Regex ex = new Regex(regex, RegexOptions.IgnoreCase);
         return ex.Match(page).Value.Trim();
      }

   // Not a valid HTML page
   return null;
}
公共静态字符串getWebPagetTitle(字符串url)
{
//创建对url的请求
HttpWebRequest request=HttpWebRequest.Create(url)为HttpWebRequest;
//如果请求不是HTTP请求(如文件),请忽略它
if(request==null)返回null;
//使用用户的凭据
request.UseDefaultCredentials=true;
//从服务器获取响应,如果有错误,则不返回任何内容
HttpWebResponse响应=null;
尝试{response=request.GetResponse()作为HttpWebResponse;}
catch(WebException){returnnull;}
//HTML标题的正则表达式

string regex=@”(?您可以使用如下函数提取页面标题。您需要修改正则表达式以查找(例如)文本的第一段,但由于每个页面都不同,这可能会很困难。但是,您可以查找元描述标记并从中获取值

public static string GetWebPageTitle(string url)
{
   // Create a request to the url
   HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;

   // If the request wasn't an HTTP request (like a file), ignore it
   if (request == null) return null;

   // Use the user's credentials
   request.UseDefaultCredentials = true;

   // Obtain a response from the server, if there was an error, return nothing
   HttpWebResponse response = null;
   try { response = request.GetResponse() as HttpWebResponse; }
   catch (WebException) { return null; }

   // Regular expression for an HTML title
   string regex = @"(?<=<title.*>)([\s\S]*)(?=</title>)";

   // If the correct HTML header exists for HTML text, continue
   if (new List<string>(response.Headers.AllKeys).Contains("Content-Type"))
      if (response.Headers["Content-Type"].StartsWith("text/html"))
      {
         // Download the page
         WebClient web = new WebClient();
         web.UseDefaultCredentials = true;
         string page = web.DownloadString(url);

         // Extract the title
         Regex ex = new Regex(regex, RegexOptions.IgnoreCase);
         return ex.Match(page).Value.Trim();
      }

   // Not a valid HTML page
   return null;
}
公共静态字符串getWebPagetTitle(字符串url)
{
//创建对url的请求
HttpWebRequest request=HttpWebRequest.Create(url)为HttpWebRequest;
//如果请求不是HTTP请求(如文件),请忽略它
if(request==null)返回null;
//使用用户的凭据
request.UseDefaultCredentials=true;
//从服务器获取响应,如果有错误,则不返回任何内容
HttpWebResponse响应=null;
尝试{response=request.GetResponse()作为HttpWebResponse;}
catch(WebException){returnnull;}
//HTML标题的正则表达式
字符串regex=@”(?您可以使用Selenium RC(开源,www.seleniumhq.org)解析页面中的数据等。它是一个带有C#.Net库的web测试自动化工具

Selenium有完整的API来读取html页面上的特定项目。

您可以使用Selenium RC(开源,www.seleniumhq.org)来解析页面中的数据等。它是一个带有C#.Net库的web测试自动化工具

Selenium有完整的API来读取html页面上的特定项目