You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决C#爬取中国政府网站时出现的(521)远程服务器错误?

解决521错误的可行方案

老哥,先给你拆解下这个521错误——这说明服务器直接拒绝了你的连接请求,十有八九是网站的反爬机制把你的程序当成机器人给拦了。咱们得把请求伪装得更像真实用户的浏览器行为,给你几个具体的解决办法:

1. 给请求加真实的浏览器请求头

默认的C# Http请求工具(比如HttpClient或HttpWebRequest)的请求头太“素”了,一眼就被识别成机器人。最关键的是加User-Agent,最好再补几个常用的头比如Accept、Referer。

举个用HttpClient的示例代码:

public async Task<string> HtmlReturnAsync(string link)
{
    // 创建带Cookie容器的Handler,方便后续维护会话
    var handler = new HttpClientHandler { UseCookies = true, CookieContainer = new CookieContainer() };
    
    using var client = new HttpClient(handler);
    // 设置真实的Chrome浏览器User-Agent,你也可以换成自己浏览器的UA
    client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
    // 补充浏览器常用的请求头
    client.DefaultRequestHeaders.Accept.ParseAdd("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    client.DefaultRequestHeaders.Referrer = new Uri("http://www.ajxxgk.jcy.gov.cn/html/zdajxx/index.html");
    
    try
    {
        // 先请求首页建立会话、获取必要Cookie,再请求目标页面
        await client.GetAsync("http://www.ajxxgk.jcy.gov.cn/html/zdajxx/index.html");
        var response = await client.GetAsync(link);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
    catch (HttpRequestException ex)
    {
        Console.WriteLine($"请求出错: {ex.Message}");
        return string.Empty;
    }
}

// 调用时改用异步方式
static async Task Main(string[] args)
{
    var program = new Program();
    var data = await program.HtmlReturnAsync("http://www.ajxxgk.jcy.gov.cn/html/zdajxx/4.html");
    Console.WriteLine(data);
}

2. 控制请求频率

别一股脑频繁请求,模拟真实用户的浏览节奏,比如每次请求之间加1-2秒的延迟:

// 在两次请求间隙加延迟
await Task.Delay(TimeSpan.FromSeconds(1.5));

3. 检查是否需要额外验证

如果上面的方法还是不行,可能网站有更严格的验证(比如验证码、JS渲染),这时候可能需要用Selenium之类的工具模拟真实浏览器操作,但这种情况相对少,先把前面的基础伪装做好再说。

重要提醒

爬取政府公开信息一定要遵守相关法律法规,不要过度请求给服务器造成压力,确保内容用于合法用途哦!

内容的提问来源于stack exchange,提问作者cybera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:57:40