Здравствуйте уважаемые.
Задача получить данные с сайта, спарсить через PHP
Вот способы, которые я использовал
1. file_get_contents(). Но
failed to open stream: HTTP request failed! HTTP/1.1 500 ( The specified network name is no longer available. )
2. Использовал CURL, как гугл бот.
https://github.com/izniburak/google-bot-curl/blob/...
Но получаю такой результат, точнее ничего не получаю. Через примерно 40 секунд
request time out
3. Использовал CURL, отправлял юзер агента Хрома.
Получаю такой результат, отформатировал код, чтобы было удобнее:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
document.cookie='cookieName=cookieToken; max-age=604800; path=/; domain=.examle.com;';
var nc = function() {
return document.cookie.indexOf('cookieName=cookieToken')==-1;
};
var w = function() {
document.body.innerHTML = document.getElementsByTagName('noscript')[0].textContent;
};
if (!window.opera) {
if (!nc()) {
window.location.reload(true);
}
var r = function() {
if (nc()) w();
};
}
else {var r = function () {if (!nc()) {window.location.reload(true);}else {w();}}}</script>
</head>
<body onload="r()">
<noscript>You have to turn on javascript and cookies support in browser to visit this site.<br>
Для посещения этого сайта необходима поддержка javascript и cookies Вашим браузером<br>
<a href="https://ddos-guard.net">https://ddos-guard.net</a></noscript>
</body>
</html>
4. Использовал phantomJs. Запускал через консоль, не через PHP.
Код
Ссылка на пастебин, из за ограничении на количество символов
Код JS
Ответ в обоих test1.html test2.html, такой же как при запросе Curl, только без body.
pastebin.com/qAfGBDeL
Мысли вслух. Этот скрипт устанавливает куки через JS. Затем проверяет его наличие, если куки нет, то перезагружает страницу. Так как куки сохраняются в браузере, то при следующем посещении куки уже есть.
Проходит проверку, есть ли куки. Куки есть и страницу перезагружать не надо, надо вывести контент
Как получить нормальную страницу с контентом?