• 使用CURL访问站点的时候出现403的解决办法


    curl的功能很强大,这里就不做详细的描述,具体的curl相关文章可以参考本站的curl目录下的文章,包括各个参数都有详细的描述。

    然而有些网站可能是出于安全的考虑不允许curl命令的访问,就像有些网站不让ping一样。但是通过浏览器是可以访问的。这种情况我们就需要采用人工模拟浏览器的方式去访问,也就是采用设置User-Agent的方式来做。

    我现在用curl都是采用命令行和代码的方式。下面我对两种情况列出解决代码。

    命令行

    加 -A参数,设置User-Agent

    curl --head http://www.akamai.com -A "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11"

    PHP代码

    加上CURLOPT_USERAGENT参数即可,该参数既是设置User-Agent的。

     1 public function init($url){
     2 
     3 $ch=curl_init();
     4 
     5 $opt=array();
     6 
     7 $opt[CURLOPT_URL]=$url;
     8 
     9 $opt[CURLOPT_HEADER]=false;
    10 
    11 $opt[CURLOPT_CONNECTTIMEOUT]=15;
    12 
    13 $opt[CURLOPT_TIMEOUT]=300;
    14 
    15 $opt[CURLOPT_AUTOREFERER]=true;
    16 
    17 $opt[CURLOPT_USERAGENT]='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11';
    18 
    19 $opt[CURLOPT_RETURNTRANSFER]=true;
    20 
    21 $opt[CURLOPT_FOLLOWLOCATION]=true;
    22 
    23 $opt[CURLOPT_MAXREDIRS]=10;
    24 
    25 //user defined opt
    26 
    27 if(!empty($this->opt))
    28 
    29 foreach($this->opt as $k=>$v)
    30 
    31 $opt[$k]=$v;
    32 
    33 curl_setopt_array($ch,$opt);
    34 
    35 return $ch;
    36 
    37 }
  • 相关阅读:
    [AWS] Lab
    [AWS] Lab
    [AWS] Launch the VPC Wizard
    [AWS] EC2 Dashboard
    mysql .net下载
    币乎咕噜DeFi踩雷记
    量化分析师关于有限差分方法(FDM)最好的5本书
    QuantStart量化交易文集
    Exploring Market Making Strategy for High Frequency Trading: An Agent-Based Approach
    什么是信息比率?信息比率与夏普比率的差别?
  • 原文地址:https://www.cnblogs.com/songchaoke/p/3371478.html
Copyright © 2020-2023  润新知