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;
                }
  • 相关阅读:
    记一下后续要看的点
    vue 封装request.js
    shuf命令简单用法
    Redis string 字符串
    Redis 事务操作
    Redis Zset 有序集合
    php操作redis的一些基本操作
    pytest自动化测试入门介绍
    idea&myeclipse 自动生成serialVersionUID
    leetCode1104. 二叉树寻路(medium)
  • 原文地址:https://www.cnblogs.com/xuwendong/p/7514736.html
Copyright © 2011-2022 走看看