这是我正在尝试运行的代码:
var wc = new WebClient();
var stream = wc.OpenRead(
"http://en.wikipedia.org/wiki/List_of_communities_in_New_Brunswick");
Run Code Online (Sandbox Code Playgroud)
但我不断收到403禁止错误.不明白为什么.它适用于其他页面.我可以在浏览器中打开页面.我怎样才能解决这个问题?
JK.*_*JK. 10
我通常不会使用OpenRead(),尝试DownloadData()或DownloadString()改为.
也可能是维基百科故意阻止您的请求,因为您没有提供用户代理字符串:
WebClient client = new WebClient();
client.Headers.Add("user-agent",
"Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");
Run Code Online (Sandbox Code Playgroud)
我经常使用WebClient,并且很快就知道如果您不提供与已知Web浏览器匹配的用户代理字符串,网站可以并且将阻止您的请求.此外,如果您组成自己的用户代理字符串(例如"我的超酷网络刮刀"),您也将被阻止.
[编辑]
我将示例用户代理字符串更改为现代版Firefox的字符串.我给出的原始示例是IE6的用户代理字符串,这不是一个好主意.为什么?某些网站可能会根据IE6执行过滤,并向该浏览器发送消息或向"请更新您的浏览器"的其他页面发送 - 这意味着您将无法获得您想要的内容.
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |