【问题标题】:Curl post request fails - bugs in a script or blocked?卷曲发布请求失败 - 脚本中的错误或被阻止?
【发布时间】:2017-04-03 09:36:12
【问题描述】:

我正在尝试使用以下脚本向http://iate.europa.eu/ 发布请求:

     <?php

$output_array = array();

$post = "method=search&saveStats=true&screenSize=1920x1080&query=bond&valid=Szukaj+&sourceLanguage=en&targetLanguages=pl&domain=&domain=12&typeOfSearch=s&request=";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://iate.europa.eu/SearchByQueryEdit.do');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

echo $server_output = curl_exec ($ch);

?>

我使用的数据:

当我运行脚本时,我收到“拒绝访问。出于安全原因,您的请求已被拒绝。”

脚本会触发一些安全机制还是只是发出错误的请求?

提前谢谢,

卢卡斯

【问题讨论】:

    标签: php curl web-scraping


    【解决方案1】:

    我已添加代理。试试这个:

    $post = "method=search&saveStats=true&screenSize=1920x1080&query=bond&valid=Szukaj+&sourceLanguage=en&targetLanguages=pl&domain=&domain=12&typeOfSearch=s&request=";
    
    $ch = curl_init();
    
    /* Additional Code Start */
    $agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0";        
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    /* Additional Code End*/
    
    curl_setopt($ch, CURLOPT_URL, 'http://iate.europa.eu/SearchByQueryEdit.do');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    echo $server_output = curl_exec ($ch);
    

    【讨论】:

    • 谢谢。脚本获取数据,但不是我想要的数据。它只是与起始页相呼应。你能看看iate.europa.eu 和我的“$post”变量吗?
    • 您还需要帮助吗?我明天可以详细查找问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2017-10-29
    • 2016-02-29
    • 2011-04-22
    • 2014-10-15
    • 2015-06-08
    • 2019-12-16
    相关资源
    最近更新 更多