C#使用HTTP代理采集HTTPS网站

134 篇文章 0 订阅
83 篇文章 0 订阅

隧道转发代理是一种根据请求自动切换代理IP的产品,适合快速启动爬虫采集项目。该产品一般都是http代理,这样可以避免https代理使用中需要安装证书带来的问题,在C#按照下面的步骤可以实现:
1、创建代理对象

var proxy = new WebProxy
{
    // *** 通过代理服务器域名和端口(官网www.16yun.cn),创建地址 ***
    Address = new Uri($"http://{t.16yun.cn}:{proxyPort}"),
    BypassProxyOnLocal = false,
    UseDefaultCredentials = false,

    // *** 代理服务器的用户名和密码***
    Credentials = new NetworkCredential(
        userName: proxyUserName,
        password: proxyPassword)
};

2、创建代理客户端

var httpClientHandler = new HttpClientHandler
{
    Proxy = proxy,
};

3、验证代理用户名和密码

if (needServerAuthentication)
{
    httpClientHandler.PreAuthenticate = true;
    httpClientHandler.UseDefaultCredentials = false;

    // *** 这些认证信息被提供给代理服务器,而不是网络服务器 ***
    httpClientHandler.Credentials = new NetworkCredential(
        userName: serverUserName,
        password: serverPassword);
}

4、创建HTTP客户端

var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);

以上代码创建的HTTP客户端只支持更高的 TLS 版本(比如 TLS 1.2),否则会导致请求失败。要解决其它版本的问题,可以在Address对象创建之前添加如下部分:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; 
Address = new Uri($"https://{t.16yun.cn}:{proxyPort}")

C#使用代理IP采集数据的更多资料,可以微信联系获取,或者搜索亿牛云索取资料。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值