Парсинг коментарів Instagram на php через мобільні прокси
1) урл сторінки з публікацією (може бути звичайна публікація https://www.instagram.com/p/CiuinbUocPa/ може бути reel https://www.instagram.com/reel/CjEA_rRKbFE/ - раніше вони нічим, крім урл не відрізнялися )
2) IP і логін-пароль мобільного прокси (socks5 з аутентифікацією за логіною пароля), яка буде використовуватися для парсінг коментарів з публікації
3) цифровий інстаграм ідентифікатор користувача, коментарі від якого потрібно отримати (можливо від користувача там є кілька коментарів)
Або сервіс API з аналогічними функціями, що буде перевіряти наяву зазначеної інформації і віддавати відповідь.У разі наявності коментарів під публікацією від користувача з зазначеним чисельним ідентифікатором - на виході функції масив з такими даними:
-юникс час найсвіжішого коментару від даного користувача
- власно коментар в юнікоді (раніше кириллиця і емодзи давалися в юнікоді, так що я з ними далі самостійно працюю, розкодію)
- логін інстаграм цього користувача (логін вони іноді змінюють, я його зберігаю в базі і порівнюю той, що був, з тим, що є в даний момент часу, якщо користувач змінив логін - оновлюю у мене в базі ці дані)
Якщо коментар не знайдено - відповідний відповідь.Для загального розуміння, як це працювало у мене раніше:
Функція отримання сторінки з інстаграм публікацією:
// $proxy_type -тип прокси, але останнім часом використовую тільки сокс5 з авторизацією за логіном і паролем
функція 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Мобільний 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);
П. С В роботі я використовую мобільні прокси з зміною айпі, так якпри зверненні до інстаграму без аутентифікації - він через 3-4 запитів починає запитувати аутентифікацію (а аутентифікацію в інсте я в своєму часі не зміг, пішов шляхом використання великої кількості ip для запитів).
-
127 Я не знаю, як в цій задачі, але можливо буде цікаво, якщо я буду виробляти подібне додаток під андроїдом з аналогічною функцією.
Актуальні фриланс-проєкти в категорії PHP
Перенести повністю готову адаптивну HTML5-структуру в WordPress.
12 000 UAH
Я шукаю досвідченого WordPress-розробника, який зможе перетворити наш ретельно підготовлений статичний HTML5/CSS3 код у високопродуктивну кастомну WordPress-тему. Фронтенд уже практично готовий (приблизно 99%): семантична розмітка, метадані та мультимовна структура (hreflang)… CMS, PHP ∙ 47 хвилин тому ∙ 18 ставок |
Інтеграція GoPosПривіт, робив хтось інтеграцію GoPos з кастомним сайтом для ресторану в Польщі? Потрібна допомога, у них дуже скудна документація, є тільки swagger і той без описів https://app.gopos.io/doc/swagger-ui/index.html Суть така, використовували від них сайт для онлайн замовлень, якщо… PHP, Веб-програмування ∙ 16 годин 41 хвилина тому ∙ 18 ставок |
Прописати мета дані АЛЬТ за допомогою ІІСайт на Laravel, на сайті багато зображень, для яких потрібно прописати коректні за семантикою та релевантні для сторінки АЛЬТ описання зображення в автоматичному режимі, з можливістю перевірки AI та машинне навчання, PHP ∙ 1 день 13 годин тому ∙ 32 ставки |
Потрібен розробник для завершення та інтеграції проєкту з автоматичного збору й обробки данних
700 UAH
Основна частина парсера вже реалізована. Парсер працює на Windows-середовищі через Microsoft Edge: сайт має антибот-захист, тому збір даних виконується не прямими HTTP-запитами, а через живу браузерну сесію. Скрипти керують відкритою вкладкою Edge через Chrome DevTools Protocol,… PHP, Веб-програмування ∙ 1 день 19 годин тому ∙ 24 ставки |
Оновлення плагінів і тем WP сайт putevka.uz«Потрібно провести технічний аудит WordPress-сайту, перевірити актуальність, безпеку та сумісність встановлених плагінів і теми. За результатами — запропонувати легальні варіанти оновлення, заміни застарілих рішень або переходу на офіційно доступні аналоги. Платні плагіни та… HTML та CSS верстання, PHP ∙ 1 день 22 години тому ∙ 40 ставок |