【问题标题】:Https google news error (specific date)https google news 报错(具体日期)
【发布时间】:2015-05-22 14:57:23
【问题描述】:

我正在尝试解析过去特定日子的谷歌新闻 虽然请求有效,但它会返回实时新闻(不是针对我输入的特定日期)。我尝试了所有方法,但没有任何效果。

string url = "https://www.google.com.cy/search?q=keyword&hl=en-
             CY&biw=1280&bih=620&source=lnt&tbs=cdr%3A1%2Ccd_min%3A" + 
             prev_date.Month.ToString() + "%2F" + prev_date.Day.ToString() 
             + "%2F" + prev_date.Year.ToString() + "%2Ccd_max%3A" + 
             date.Month.ToString() + "%2F" + date.Day.ToString() + "%2F" + 
              date.Year.ToString() + "&tbm=nws";

           StreamReader reader = null;
            WebRequest request = null;
            WebResponse response = null;
             request = WebRequest.Create(url);
             request.Method = "GET";
             response = request.GetResponse();
            reader = new StreamReader(response.GetResponseStream(), 
                                      Encoding.UTF8);
            result = reader.ReadToEnd();

【问题讨论】:

    标签: c# https


    【解决方案1】:

    这个怎么样:

    using System;
    using System.IO;
    using System.Net;
    
    class Program
    {
        static void Main(string[] args)
        {
            DateTime prev_date = new DateTime(2015, 4, 1);
            DateTime date = new DateTime(2015, 4, 30);
    
            string url = @"http://www.google.com.cy/search?q=keyword&hl=en-CY&biw=1280&bih=620&source=lnt&tbs=cdr%3A1%2Ccd_min%3A" + 
                prev_date.Month.ToString() + "%2F" + prev_date.Day.ToString() 
                + "%2F" + prev_date.Year.ToString() + "%2Ccd_max%3A" + 
                date.Month.ToString() + "%2F" + date.Day.ToString() + "%2F" + 
                date.Year.ToString() + "&tbm=nws";
    
            WebClient client = new WebClient ();
            client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
            Stream sr = client.OpenRead(url);
            StreamReader reader = new StreamReader(sr);
            File.WriteAllText(@"C:\Users\Ryan\Desktop\test.htm", reader.ReadToEnd());
            sr.Close ();
        }
    }
    

    我认为 google 会根据 UserAgent 返回不同的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      相关资源
      最近更新 更多