【问题标题】:httpwebrequest in dotnet core returns 404 errordotnet core 中的 httpwebrequest 返回 404 错误
【发布时间】:2019-02-19 17:27:49
【问题描述】:

我是 dotnet-core 的新手。 我正在做一些 scraping 请求代码。我以前使用速卖通的做法对我来说效果很好,使用相同的模式 现在,我被沃尔玛的要求卡住了

当我在任何其他网站上使用以下代码时,它会返回 OK 响应和所需数据。

 HttpWebRequest wRequest = (HttpWebRequest) WebRequest.Create(url);
            // wRequest.Timeout = 10000
            wRequest.UserAgent = "Mozilla/ 5.0(Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, Like Gecko) Chrome/15.0.874.121 Safari/535.2";
           

            using (HttpWebResponse httpResponse = (HttpWebResponse)wRequest.GetResponse())
            {
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    System.IO.StreamReader sr = new System.IO.StreamReader(httpResponse.GetResponseStream());

                   var responseString= sr.ReadToEnd();
                    Debug.Write(responseString);
                }
            }

       }

但是当我在沃尔玛这样做时,它会返回 404 not found 错误。 更奇怪的是,在一个控制台项目中,使用 C# 和 dotnet Core 2.1 框架在 Walmart 上跟踪(另一个)代码为我工作。 当我将其导入主项目时,它再次返回 404 错误。

WebClient wReq = new WebClinet();    
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(wReq.DownloadString(URL));

我什至使用了通过 fiddler 和 cookies 容器找到的所有标头。但没有运气。我不明白这是什么问题。

PS:我尝试使用上面的一些代码拒绝沃尔玛,而另一个(一些随机的)市场 URL 对我有用。但沃尔玛没有运气。

【问题讨论】:

    标签: c# web-scraping .net-core httpwebrequest


    【解决方案1】:

    仅供任何陷入相同或类似问题的人参考。 我的沃尔玛网址不正确。 我通过将 URL 划分为权威、查询字符串等部分来检查 URL。 然后将其组合回来。 在组合添加期间,“/”被添加到 URL 的末尾,它变得无效。 所以,删除它就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多