@OneOlOf

Как сделать парсинг bitrix24?

В битриксе нет возможно получить данные с определенной страницы с помощью API.

Хочу попытаться сделать парсинг страницы, но нужно преодолеть авторизацию. Как curl'ом можно отправить запрос на авторизацию с битриксом? Либо подскажите любой другой метод авторизации в битриксе для парсинга
  • Вопрос задан
  • 2060 просмотров
Решения вопроса 1
Compolomus
@Compolomus
Комполом-быдлокодер
Мини код для работы с курл, на проде лет 5 работала функция
$url = 'https://bitrix.ru/login.php';

// $mode = array(); // настройки
// Пост ключ значение
$post = array('field' => 'value', 'field2' => 'value2');

$defaultmode = array('charset' => 'utf-8', 'ajax' => 0, 'ssl' => 0, 'cookie' => 1, 'headers' => 0, 'useragent' => 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.10.229 Version/11.61');
 
foreach ($defaultmode as $k => $v) {
    if (!isset($mode[$k]) ) {
        $mode[$k] = $v;
    }
}
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, $mode['headers']);
if (!$mode['ref']) {
    curl_setopt($ch, CURLOPT_REFERER, $url);
} else {
    curl_setopt($ch, CURLOPT_REFERER, $mode['ref']);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $mode['useragent']);
curl_setopt($ch, CURLOPT_ENCODING, $mode['charset']);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 200);
if ($post) {
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
 
if ($mode['cookie']) {
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
}
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if ($mode['ssl']) {
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
}
if ($mode['ajax']) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Requested-With: XMLHttpRequest", "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"));
}
 
$data = curl_exec($ch);
curl_close($ch);


курлом делаете пост запрос на обработчик формы, смотрите в исходном коде поля которые нужны для заполнения, вторым запросом забирайте нужное и потом парсите через регулярки или дом
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы