0
Это мой код:403 Запретный ошибка при получении страницы с PHP Curl
$url = 'http://www.douban.com/'; $url = str_replace(" ", "%20", $url); $TheURL_header = substr($url, 0, 7); if ($TheURL_header == "http://") { $pos = strpos($url, "/", 7); if ($pos) { $host = substr($url, 7, $pos - 7); } else { $host = substr($url, 7); } $referer = "http://" . $host . "/"; } else if ($TheURL_header == "https:/") { $pos = strpos($url, "/", 8); if ($pos) { $host = substr($url, 8, $pos - 8); } else { $host = substr($url, 8); } $referer = "https://" . $host . "/"; } else { $pos = strpos($url, "/"); if ($pos) { $host = substr($url, 0, $pos); } else { $host = substr($url, 0); } $url = "http://" . $url; $referer = "http://" . $host . "/"; } $c = curl_init(); $curl_header = array( 'Accept: */*', 'Referer: ' . $referer, 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2', 'Host: ' . $host, 'Connection: Keep-Alive'); curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_HTTPHEADER, $curl_header); curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($c, CURLOPT_TIMEOUT, 30); curl_setopt($c, CURLOPT_HEADER, 0); $res = curl_exec($c); echo $res;
Он отлично работает, когда я поставил $ URL = «http://www.google.com», но если я изменю $ URL, например www.example.com. aoguejewellery.com и некоторые другие URL-адреса, я всегда получал ошибку 403.
'403' не является ошибочной ошибкой запроса, но является Запретной ошибкой. Код состояния для Bad Request - «400». – BoltClock
Спасибо, я обновил. – yesmeck
Сайт может использовать файлы cookie для отслеживания сеанса. Я не поставил это в качестве ответа, потому что у меня больше опыта использования java для захвата веб-страниц. Но у меня была аналогичная проблема, и мне пришлось использовать java-библиотеки apache HttpClient для полного эмуляции браузера и управления файлами cookie. Просто что посмотреть. –