【问题标题】:Search a string on some other page在其他页面上搜索字符串
【发布时间】:2013-10-24 11:55:17
【问题描述】:

任何人都可以建议一种使用 ASP .net C# 在网页上搜索字符串的方法

场景:一个文本框有一些值(字符串),点击按钮它会在某个 xyz 页面上搜索该值(字符串)。

示例:我在文本框中有“youtube”(字符串),当我按下提交按钮时。该提交按钮获取 Google.com(渲染页面)的全部信息,并在该 Google.com 上搜索“youtube”(字符串)

可能的解决方案: 我认为这可以通过以某种方式在某处临时渲染页面,或者以某种方式将响应存储在任何字符串或数组中,然后查看该字符串来实现。

任何人都可以提出解决上述情况的方法。如果可能的话,举个例子。

【问题讨论】:

    标签: c# asp.net c#-4.0 search webpage


    【解决方案1】:

    使用网络请求获取页面:

    WebRequest request = WebRequest.Create(http://www.google.com);
    request.Method = "GET";
    WebResponse response = request.GetResponse();
    Stream stream = response.GetResponseStream();
    StreamReader reader = new StreamReader(stream);
    string content = reader.ReadToEnd();
    reader.Close();
    response.Close();
    

    然后只需搜索您的 content 字符串:

    int i = content.IndexOf("youtube");
    

    或者你想搜索它。

    【讨论】:

      【解决方案2】:

      如果您使用的是 .NET 4.5,您可以使用 async/await 来完成此操作

          static void Main(string[] args)
          {
              var content = GetUrlContents("http://www.google.com");
      
              if (content.Result.Contains("Google"))
                  Console.WriteLine("Google found!");
      
              Console.Read();
          }
      
          static async Task<string> GetUrlContents(string url)
          {
              HttpClient client = new HttpClient();
      
              var content = await client.GetStringAsync(url);
      
              return content;
          }
      

      或者如果你想要同步,你可以做这种方法

          public static string GetUrlContents(string url)
          {
              return new WebClient().DownloadString(address);
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-02
        • 2012-07-08
        • 2017-04-16
        • 2021-08-26
        相关资源
        最近更新 更多