Войти

Показать полную графическую версию : Парсер на рутрекер


bo11
16-03-2020, 09:20
Всем привет,есть парсер на рутрекер. Он обрабатывает текст регулярными выражениями. Не давно на рутрекере появилась кнопочка код. При нажатии на нее,появляется готовый набор ббкодов. Пытаюсь получить этот набор...проблема в том,что он висит на аякс запросе. Проверил пост-запрос через сервис https://tools.seo-zona.ru/postget.html. Там всё проходит удачно. Пытаюсь сделать это через парсер:
вот POST запрос из браузера:
action=view_post&post_id=74212646&mode=text&form_token=1cc9fujhyyuyj
Делаю такой же запрос через cURL
$post_data = [
"action" => "view_post",
"post_id" => "$post_id",
"mode" => "text",
"form_token" => "$form_token"
];
В ответ получаю
"{"error_code":1,"error_msg":"Запрос не был обработан [ошибочная подпись формы]. Обновите страницу и повторите запрос еще раз","action":""}"

вроде данные передаются
array:4 [▼
"action" => "view_post"
"post_id" => "74212646"
"mode" => "text"
"form_token" => "1cc9fd83032ebd4af2d6e478076231c9"
]
Вот курл
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://rutracker.org/forum/ajax.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // On dev server only!
$output = curl_exec($ch);

Говорю сразу...я начинающий пользователь,не всё знаю.

bo11
16-03-2020, 11:59
Вопрос решен,нужно было просто подставить куки.

bo11
26-03-2020, 09:03
Привет. Подскажите пожалуйста, как сделать условие - если не найден
preg_match_all ("/<a onclick=\"showtab\((\d+),(\d+)\); return false;\" href=\"#\">Качество<\/a>/", $text, $source, PREG_SET_ORDER);
То это не будет срабатывать, и вернёт ноль
$screen2 = file_get_contents("http://kinozal.tv/get_srv_details.php?id=$url_id2&pagesd=$pagesd2");
$screenschot2 = "\n" . $screen2 . "";




© OSzone.net 2001-2012