我遇到了WebClient.DownloadString
的一个奇怪的问题,我似乎无法解决,我的代码:
Dim client As New WebClient()
Dim html = client.DownloadString("http://www.btctrade.com/")
内容似乎不是完全AJAX,所以不可能。是因为网页是中文的吗?我猜测HTML只是作为HTML提供,所以也不可能。当我转到它时,网址很好,似乎也没有重定向到https。
任何人都知道为什么会这样吗?
答案 0 :(得分:1)
您必须在webclient标头中设置Cookie和useragent
client .Headers.Add(HttpRequestHeader.UserAgent, "UserAgent,Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1");
client .Headers.Add(HttpRequestHeader.Cookie, "USER_PW=9b1283bfe37ac47b243a1e0c9c1c9e52; PHPSESSID=f692406a0c84dba2605a7065d55a3b53")
如果您希望请求完成所有这些工作,您必须使用httpwebrequest然后保存所有响应的标头并在新请求中使用它们
答案 1 :(得分:0)
WebClient
没有错误,所以服务器可能正在返回您没想到的数据。使用Fiddler观察当您在网络浏览器中访问该网站时会发生什么。
当我执行您的代码时,网站没有返回任何数据。当我在Web浏览器中访问该站点时,它返回了数据。 可能是该网站检测到您是僵尸程序并拒绝您访问。通过模仿您在Fiddler中看到的内容来假冒浏览器。