网页爬虫、自动提交、自动Post、自动Get

  其实这类功能用C#有很多方法实现,简单点的用WebClient,参数多一些的用HttpWebRequest。但是用这些的时候我总会碰到一些验证的错误。什么ssl的错误,还有服务器返回的错误,而且还不知道错在哪。直到我发现了一个叫RestSharp的库。

  不得不说,RestSharp是一款非常有用的REST API客户端库。RestSharp可能是.NET中最受欢迎的HTTP客户端库,具有自动序列化和反序列化,请求和响应类型检测,各种身份验证以及其他有用的功能,正在被成千上万的项目使用。

  RestSharpNuGet上的下载量超过3200万,评价每日下载量为10000。许多受欢迎的OSS项目(包括RoslynSwagger)都在使用它。
  特点包括:

    • 序列化 - 支持JSON,XML和自定义序列化和反序列化
    • 同步和异步 - 各种重载机制以支持同步和异步HTTTP调用
    • 广泛的配置 - 几乎可以自定义HTTP调用的每个方面
    • 认证方式 - 支持基本的,OAuth 1OAuth 2JWTNTLM
    • 表单 - 请求体和文件 - 将对象作为请求主体以JSON或XML或表单形式发送。以字节或流的形式上传和下载文件。
    • 参数 - 使用简单流畅的API添加查询、URL片段、正文、表单或头参

  1.Get(直接上代码,需要其他参数的可以自己加)

        public static string Get(string url)
        {
            try
            {
                var client = new RestClient(url);
                var request = new RestRequest(Method.GET);
                IRestResponse response = client.Execute(request);
                return response.Content;
            }
            catch (Exception ex)
            {
                return "";
            }
        }

  2.Post(直接上代码,需要其他参数的可以自己加)

        public static string Post(string url, IDictionary<string, string> cookies, IDictionary<string, string> bodys)
        {
            try
            {
                var client = new RestClient(url);
                var request = new RestRequest(Method.POST);
                foreach (var item in cookies.Keys)
                    request.AddCookie(item, HttpUtility.UrlEncode(cookies[item]));
                foreach (var item in bodys.Keys)
                    request.AddParameter(item, bodys[item]);
                IRestResponse response = client.Execute(request);
                return response.Content;
            }
            catch (Exception ex)
            {
                return "";
            }
        }

  3.感觉这玩意来写爬虫实在是太舒服,抓来源码正则解析完就完成了。

技术QQ 1124391467

posted @ 2022-05-12 09:28  鲸鱼软件开发  阅读(201)  评论(0)    收藏  举报