3

我遇到了一个WebClient.DownloadString我似乎无法解决的奇怪问题,我的代码:

Dim client As New WebClient()
Dim html = client.DownloadString("http://www.btctrade.com/")

内容似乎不是完全的 AJAX,所以不可能是这样。是不是因为网页是中文的?我猜 HTML 只是作为 HTML 提供的,所以也不是真的。当我访问它时,该 URL 很好,而且似乎也没有重定向到 https。

有谁知道为什么会这样?

4

2 回答 2

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 然后保存所有响应的标头并在新请求中使用它们

于 2013-11-09T13:49:40.783 回答
0

WebClient不是错误的,因此服务器可能正在返回您没想到的数据。使用 Fiddler 观察当您在 Web 浏览器中访问该站点时会发生什么。

当我执行您的代码时,网站没有返回任何数据。当我在网络浏览器中访问该站点时,它返回了数据。很可能,该站点检测到您是机器人并拒绝您访问。通过模仿您在 Fiddler 中看到的内容来伪装成浏览器。

于 2013-11-09T13:18:06.783 回答