zoukankan      html  css  js  c++  java
  • 爬虫发起抓取被服务器拒绝访问返回403禁止访问解决方案

    现在很多网站的api接口返回httpcode返回码是403提示禁止访问。如果您也遇到这样的情况,请先不要急着去修改网站相关的参数

    第一、先进api的网站。用浏览器访问,如果浏览器访问该api接口能成功。说明是设置了权限的问题。如果不能成功的话。很可以是该接口已修改或已失效,这时候就没办法访问了。

    第二、如果浏览器能访问成功的话。那就好办了。调用该接口时,捕获异常中的responseBody,很有可能数据就在这里面,笔者就遇到的是这种问题。

    直接上代码:

    try
                {
                   //这里调用api接口
                }
                catch (WebException ex)
                {
                    var strm = ex.Response.GetResponseStream();
                    strm.Position = 0;
                    StreamReader reader = new StreamReader(strm);
                    string error = reader.ReadToEnd();
                    //这里看error里面的值是否有你想要的值
                    if (!string.IsNullOrWhiteSpace(error))
                    {
                        var result = JsonConvert.DeserializeObject<JObject>(error)["result"]["results"];
                        if (result == null)
                            return null;
                        var customer = JsonConvert.DeserializeObject<JArray>(result.ToString());
                        if (customer == null)
                            return null;
                        List<InvTitle> list = new List<InvTitle>();
                        foreach (var item in customer)
                        {
                            InvTitle mc = new InvTitle()
                            {
                                Name = item["entName"] != null ? item["entName"].ToString() : "",
                                TaxCode = item["credCode"] != null ? item["credCode"].ToString() : "",
                                State = "y",
                                CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                            };
                            list.Add(mc);
                            if (list.Count == 4)
                                break;
                        }
                        return list;
                    }
    
                    return null;
                }
  • 相关阅读:
    CSS中 link 和@import 的区别是?
    display:none 和 visibility: hidden的区别
    怎样清除浮动
    纯CSS水波纹按钮效果
    如何让一个div水平垂直居中
    如何让一个div水平居中
    Vue封装简单的axios库
    Echarts-x轴数据换行显示
    Vue+Webpack打包路径问题
    Vue中Mint-ui底部弹出(上拉)组件
  • 原文地址:https://www.cnblogs.com/xuwendong/p/7514736.html
Copyright © 2011-2022 走看看