【发布时间】: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