2015-07-02 1 views
1

Я хочу сканировать некоторые конкретные значения (например, newstext) с веб-сайта (что не является моим собственным).PHP обход веб-сайта, который использует cloudflare

file_get_contents() не работает, возможно заблокирован php.ini.

Так что я попытался сделать это с помощью завитка, проблема в том, что:
Все, что я получаю, это текст перенаправления из облачной системы.
Мой гусеничный движок должен сделать что-то вроде:
Перейти на страницу -> ожидание перенаправления облачной 5secs -> скручивание страницы.

Любые идеи о том, как просканировать страницу после времени ожидания? (в PHP)

Редактирование: так что я пробовал много вещей, проблема по-прежнему такова.
более конкретно: он просматривает страницу перенаправления облачных вычислений. (так что я получаю страницу, которая перенаправляется на хост, cloudflare впереди. Когда я ломаюсь на localhost, он принимает localhost, поэтому перенаправление не работает.) Нет ли способа начать сохранение данных returend после 5 секунд «скручивания» «?

+0

Какой сайт вы пытаетесь ползти? – PHPhil

+0

Смотрите заголовки из рабочего браузера и используйте те же заголовки со своим скриптом. – machineaddict

+0

@machineaddict я попробую это – servrox

ответ

0

Сначала вы должны проверить, как нормальный браузер ведет себя на этом сайте. Что такое перенаправления и файлы cookie.

Затем вам нужно настроить скрипт curl, который собирает все файлы cookie в «cookie jar» и автоматически выполняет перенаправление.

Затем вы должны сделать несколько тестов.

Надеюсь, это поможет.

Примечание:

  • Cloudflare имеют хорошую инфраструктуру, чтобы блокировать людей, как вы. Они могли сделать капчу вызов или что-то подобное.

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

1

«переход на страницу -> ожидание перенаправления облачной 5secs -> скручивание страницы».

5-я межстраничная страница фактически требует, чтобы JavaScript и файлы cookie были включены до того, как посетитель может пройти проверку, которая, вероятно, не будет работать, если вы используете сканер или бот для доступа к сайту.

0

Вы должны использовать phantomjs

echo shell_exec('phantomjs example.js') 

example.js

var page = require('webpage').create(); 
var url = 'http://www.google/'; 
page.open(url, function (status) { 
    console.log(page.content) 
    phantom.exit(); 
});