Я пытаюсь создать базовый скребок. Он отлично работает практически для любого веб-сайта, однако некоторые сайты, которые я не могу удалить, почему это так? Вот мой код на сайте, который работает (этот сайт):PHP не позволяет мне выводить html определенных сайтов, почему?
<!doctype html>
<html lang="en-US">
<body>
<?php
$url ='http://stackoverflow.com/';
$output = file_get_contents($url);
echo $output;
?>
</body>
</html>
При запуске на моем собственном локальном хосте это выводит содержание в stackoverflow.com мой сайт. Вот сайт, это не работает:
<!doctype html>
<html lang="en-US">
<body>
<?php
$url ='https://www.galottery.com/en-us/home.html';
$output = file_get_contents($url);
echo $output;
?>
</body>
</html>
Вместо загрузки сайта я получаю эту ошибку:
Warning: file_get_contents(https://www.galottery.com/en-us/home.html): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in C:\xampp\htdocs\projects\QD\webScraping\index.php on line 6
Почему это работает для некоторых сайтов и не для других? Я думал, что это может быть потому, что один из сайтов HTTPS, но я пробовал этот код для других, таких как https://google.com, и он работает отлично.
Я использую XAMMP для запуска локального PHP.
Они вполне возможно, что-то на своем сервере, чтобы остановить людей, очищая их сайты – andrewsi
вы пытались получить доступ к веб-странице с Брауэр? Если вы не можете получить к нему доступ, то вы заблокированы с сайта –
Удаленный сайт блокирует запросы на основе некоторой политики, которую мы не можем знать. Возможно, из-за отсутствия пользовательского агента или подобного. Кстати, если вы собираетесь использовать подобную тактику на общедоступном веб-сайте, обязательно получите соответствующие разрешения, иначе вы можете оказаться в юридической ситуации. – apokryfos