• C#小爬虫,通过URL进行模拟发送接收数据


     1 public async Task<string> SendDataAsync(HttpMethod httpMethod, string requestUrl, HttpContent postContent = null, string cookies = "")
     2         {
     3             HttpClientHandler httpHandler = new HttpClientHandler()
     4             {
     5                 AllowAutoRedirect = true,
     6                 //CookieContainer = new CookieContainer(),
     7                 UseCookies = false,
     8                 AutomaticDecompression = DecompressionMethods.GZip
     9             };
    10 
    11             using (HttpClient httpClient = new HttpClient(httpHandler))
    12             {
    13                 httpClient.DefaultRequestHeaders.ExpectContinue = false;
    14                 httpClient.DefaultRequestHeaders.Add("Accept", "*/*");
    15                 httpClient.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");
    16                 httpClient.DefaultRequestHeaders.Add("Accept-Language", " zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
    17                 httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0");
    18                 //var response = await httpClient.GetAsync(sUrl);
    19                 //return (await response.Content.ReadAsAsync<AvResult>());
    20                 string sResult;
    21                 try
    22                 {
    23                     HttpRequestMessage request = new HttpRequestMessage(httpMethod, requestUrl);
    24                     bool isNullCookie = string.IsNullOrEmpty(cookies);
    25                     if (!isNullCookie)
    26                     {
    27                         //httpHandler.CookieContainer.SetCookies(new Uri(requestUrl), cookies);
    28                         request.Headers.Add("Cookie", cookies);
    29                     }
    30                     if (httpMethod.Method == "POST")
    31                         request.Content = postContent;
    32                     var response = await httpClient.SendAsync(request);
    33                     sResult = await response.Content.ReadAsStringAsync();
    34                 }
    35                 catch (Exception ex)
    36                 {
    37                     sResult = ex.Message;
    38                 }
    39                 return sResult;
    40             }
    41         }

    次上面的代码只是爬虫的模拟数据发送的部分代码,即自定义模拟浏览器客户端的,设置请求头,没有用Cookies进行登陆保存设置

  • 相关阅读:
    DockerFile自定义简单的镜像
    error: rpmdb: BDB0113 Thread/process 11524/140156910634816 failed: BDB1507 Thread died in Berkeley DB library
    Docker--privileged的作用
    MySQL---‘PRIMARY KEY’的使用
    DockerFile----CMD和ENTRYPOINT区别案例
    WARNING: IPv4 forwarding is disabled. Networking will not work.
    查询出数据库表中字段名
    查询出数据库表中字段名
    jquery复制当前tr行
    jquery复制当前tr行
  • 原文地址:https://www.cnblogs.com/lubolin/p/6657271.html
Copyright © 2020-2023  润新知