Как правильно организовать парсер php?

120
27 августа 2021, 12:40

Пишу парсер для одного сайта. На сайте есть авторизация, это сильно усложняет, т.к. я в php новичок

<?php
include_once('simple_html_dom.php');
function curl_get($url, $referer = 'http://www.google.com', $fields = []) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0");
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $data = curl_exec($ch);
    $dom = str_get_html($data);
    $token = $dom->find('#big_login input[name="authenticity_token"]');
    foreach($token as $tok) {
        $fields["authenticity_token"] = $tok->value;
    }

    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
    curl_close($ch);
    return $data;
}

$url_auth = 'https://********/users/sign_in';
$auth_data = [
   "user[email]" => "123123sad@mailnow2.com",
   "user[password]" => "pass",
   "user[remember_me]" => "on",
   "authenticity_token" => "",
   "utf8" => "✓"
];
$page = curl_get($url_auth, 'http://www.google.com', $auth_data);
echo $page;

?>

По идее после вывода должна выводиться страница, где я авторизован, но нет, выводиться просто страница с авторизацией.

На сайте есть такой токен

Который я паршу в итоге, я так понял его тоже нужно отправлять, при авторизации

Что я делаю не так и почему выбивает страницу авторизации?

READ ALSO
yii2 как передать во вью из контроллера переменную которая может быть null

yii2 как передать во вью из контроллера переменную которая может быть null

При рендеринге вида возникает ошибка Call to a member function isAttributeRequired() on nullКонтроллер:

212
В обход dependency injection symfony

В обход dependency injection symfony

Потихоньку осваивая symfony 4 возникли недопониманияИмеется абстрактный репозиторий в который inject-ица некий DriverManager объект-коннекшн к базе...

323
Map-merge при наличии List в качестве значений

Map-merge при наличии List в качестве значений

Задача следующая - есть мапа, которая хранит в себе Id и связанный с ним список значений

172
Почему программа работает медленно?

Почему программа работает медленно?

Написал программуПрограмма выполняет все поставленные задачи, кроме одной, она должна выполнятся за 1 секунду, но выполняется за 4, подскажите,...

128