Парсинг комментариев instagram на php через мобильные прокси
12 121 UAHВартість проекту вказав приблизно. Якщо ви готові це зробити (або принаймі спробувати зробити) -чекаю на ваші пропозиції. Мобільні проксі на перевірку / тестування - в наявності.
Суть - в наличии телеграм бот, который выдаёт пользователям задание на комментарирование публикаций инстаграм и затем - проверяет выполнение задания (по дополнительной команде от пользователя-исполнителя).
Раньше (до августа 2022 года) всё прекрасно работало, но потом инстаграм чёт изменил и насколько я понимаю данные по комментариям подтягиваются в процессе загрузки страницы.
Задача - сделать функцию на php (желательно 5.6, если никак то php 7.xx) с такими параметрами на входе:
1) урл страницы с публикацией ( может быть обычная публикация https://www.instagram.com/p/CiuinbUocPa/ может быть reel https://www.instagram.com/reel/CjEA_rRKbFE/ - раньше они ничем кроме урл не отличались )
2) ip и логин-пароль мобильной прокси (socks5 с авторизацией по логину паролю), которая будет использоваться для парсинга комментариев из публикации
3) числовой инстаграм id пользователя, комментарии от которого необходимо получить (возможно от пользователя там есть несколько комментариев)
Або сервіс api з аналогічними функціями, що буде перевіряти наявніть вказаної інформації и віддавати відповідь.
В случае наличия комментариев под публикацией от пользователя с указанным числовым id - на выходе функции массив с такими данными:
-юникс время самого свежего комментария от данного пользователя
- собственно комментарий в юникоде (раньше кириллица и эмодзи отдавались в юникоде, ну я с ними дальше самостоятельно работаю, раскодирую)
- логин инстаграм этого пользователя (логин они иногда меняют, я его храню в базе и сравниваю тот что был, с тем, что есть в данный момент времени, если пользователь поменял логин - обновляю у себя в базе эти данные)
Если комментарий не найден -соответствующий ответ.
Для общего понимания, как оно работало у меня раньше:
функция получения страницы с инстаграм публикацией:
// $proxy_type -тип прокси, но в последнее время использую только сокс5 с авторизацией по логину и паролю
function getinsta($url, $proxy_ip, $proxy_pass, $proxy_type) {
$chs = curl_init();
curl_setopt($chs, CURLOPT_URL, 'https://www.instagram.com/'.$url.'/');
$user_agent = "Mozilla/5.0 (Linux; Android 7.1.2; AFTMM Build/NS6265; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36";
curl_setopt($chs, CURLOPT_USERAGENT, $user_agent);
if($proxy_type == 55) {
curl_setopt($chs, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($chs, CURLOPT_PROXY, $proxy_ip); curl_setopt($chs, CURLOPT_PROXYUSERPWD, $proxy_pass); }
if($proxy_type == 1) { curl_setopt($chs, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); curl_setopt($chs, CURLOPT_PROXY, $proxy_ip); }
if($proxy_type == 4) { curl_setopt($chs, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4); curl_setopt($chs, CURLOPT_PROXY, $proxy_ip); }
if($proxy_type == 5) { curl_setopt($chs, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($chs, CURLOPT_PROXY, $proxy_ip); }
curl_setopt($chs, CURLOPT_HEADER, true);
curl_setopt($chs, CURLOPT_TIMEOUT, 10);
curl_setopt($chs, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($chs, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($chs,CURLOPT_RETURNTRANSFER,1);
$answer = curl_exec($chs); return $answer; curl_close($chs); }
// далее - т.к. у меня были небольшие проблемы с составлением регулярных выражений,
// модификация страницы - заменял на число 1537 часть исходного кода
$scrap_page = preg_replace('/(\",\"created_at\"\:)/', '|1537', $getpage);
// регулярка на поиск id инстаграм пользователя комментарии от которого ищу
// переменная $iid - тот самый числовой айди
if (preg_match_all('/(id\"\:\"[0-9]{10,25}\",\"text\"\:\")([^@|#]{1,9000})(\|1537)([0-9]{5,10})(\,\"did_report_as_spam\"\:false\,\"owner\"\:{\"id\"\:\")('.$iid.')([^@]{1,500})(username\"\:\")([a-z_.0-9]{1,30})/', $scrap_page, $doarray) > 0) {
// юникс время последнего комментария от пользователя с этим айди
$time_array = $doarray['4']; $created = array_pop($time_array);
// собственно сам комментарий
$text_array = $doarray['2']; $raw_comment = array_pop($text_array);
// логин инстаграм пользователя с этим айди
$loginii_array = $doarray['9']; $new_ilogin = array_pop($loginii_array);
}
P.S. В работе использую мобильные прокси со сменой айпи, т.к. при обращении к инстаграм без авторизации - он через 3-4 запроса начинает просить авторизацию (а авторизацию в инсте я сделать в своё время не сумел, пошёл по пути использования большого количества ip для запросов).
-
127 Не знаю как в этой задаче, но возможно будет интересно, если я изготовлю подобное приложение под андройд с аналогичным функционалом.
Актуальные фриланс-проекты в категории PHP
Интеграция Blade-шаблона статьи | Laravel | Frontend
4493 UAH
Интеграция Blade-шаблона статьи | Laravel | Frontend Суть задачи Сайт на Laravel Готов HTML/CSS макет страницы премиум-статьи блога. Нужно интегрировать его в существующую Blade-структуру сайта. Дизайн готов. Вы ничего не проектируете — только интегрируете. Вы получите: готовый… PHP, Веб-программирование ∙ 4 часа 32 минуты назад ∙ 44 ставки |
Внедрение технического SEO-аудита на OpenCartДобрый день. Необходимо внедрить технические SEO-правки на сайте softugo.com. Сайт уже разработан, но еще не запущен полноценно. Платформа: ocStore 3.0.2.0 / OpenCart + кастомный код. Хостинг: Hostinger. Текущая версия PHP: 7.3. (планируется переход на PHP 8.2) Есть готовый… PHP, Веб-программирование ∙ 6 часов 34 минуты назад ∙ 47 ставок |
Выполнение работ после SEO-аудита
15 000 UAH
Нужен опытный OpenCart-разработчик для выполнения SEO и технических доработок интернет-магазина. Основные задачи: Исправление структуры внутренних ссылок и меню. Добавление ссылок в футер. Реализация хлебных крошек с микроразметкой Schema.org. Исправление генерации sitemap.xml… PHP, Сопровождение сайтов ∙ 3 дня 6 часов назад ∙ 62 ставки |
Нужна интеграция KeyCRM → ПРРО Кашалот |
Сайт на WordPress с использованием темы Kadence и Kadence Blocks.
10 000 UAH
Нам нужно создать сайт на WordPress с использованием темы Kadence и Kadence Blocks. Интернет-магазина не будет (хотя, вероятно, он будет добавлен в будущем). Нужна главная страница и несколько внутренних страниц. Графика уже готова, структура макета в основном определена,… CMS, PHP ∙ 7 дней 12 часов назад ∙ 38 ставок |