O
O
OneOlOf2019-10-17 04:54:06
Bitrix24
OneOlOf, 2019-10-17 04:54:06

How to parse bitrix24?

In Bitrix, it is not possible to get data from a specific page using the API.
I want to try to parse the page, but I need to overcome the authorization. How can curl send an authorization request with Bitrix? Or tell me any other authorization method in Bitrix for parsing

Answer the question

In order to leave comments, you need to log in

1 answer(s)
D
Dmitry, 2019-10-17
@OneOlOf

Mini code for working with curl, the function worked for 5 years

$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);

make a post request to the form handler with a curl, look in the source code for the fields you need to fill in, use the second request to get what you need and then parse through regular expressions or home

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question