Почему ошибка 404 через PHP cURL GET, но отлично работает в браузере? - PullRequest
0 голосов
/ 09 декабря 2011

StumbleUpon недавно изменил их структуру, и их API больше не работает, поэтому я пытаюсь написать PHP-скрипт для доступа к моей истории Stumble.

Довольно неловко, я застрял на простом шаге, пытаясь получить страницу входа;)

https://www.stumbleupon.com/login/ нормально загружается в моем браузере

Но этот код PHP отображает страницу 404:

    // Vars
    $url = "https://www.stumbleupon.com/login/";
    $user_agent = "Mozilla/5.0";

    // Curl
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);

    $response = curl_exec($ch);     

    echo $response;

Я подумал, что, может быть, они блокируют определенные пользовательские агенты, поэтому я попробовал ту же самую, которую использует мой браузер, но не повезло. Я также попытался запустить скрипт с разных IP-адресов, чтобы устранить проблему с запретом IP-адресов. Я действительно невежественен в этом ... очень странно.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Попробуйте использовать https://www.stumbleupon.com/login.php.Приведенный вами URL возвращает 404 для меня.

2 голосов
/ 09 декабря 2011

Возможно, они ищут какой-то другой заголовок HTTP. Вы должны попытаться увидеть, что делает ваш браузер, когда он запрашивает эту страницу с чем-то вроде live http headers, и попытаться включить один HTTP-заголовок за раз в ваш скрипт и посмотреть, какой из них решает вашу проблему.

...