Ответы пользователя по тегу Парсинг
  • Как парсить данные, подгружаемые прокруткой страницы?

    @zkrvndm
    Софт для автоматизации
    Смотрим вкладку Сесть в консоли и видим, что данные подгружаются со ссылок:
    Первая страница: https://api.coinmarketcap.com/data-api/v3/cryptocu...
    Вторая страница: https://api.coinmarketcap.com/data-api/v3/cryptocu...
    Третья страница: https://api.coinmarketcap.com/data-api/v3/cryptocu...
    Их и парсите, как JSON. Логика формирования интуитивно понятна думаю.
    Ответ написан
    Комментировать
  • Как с помощью регулярного выражения найти кнопку в HTML?

    @zkrvndm
    Софт для автоматизации
    Вы явно используйте какую-то лютое старье для парсинга. Рекомендую присмотреться к ZennoPoster. Сам бы я и вовсе на обычном Google Chrome парсил. Что вы там пытайтесь спрасить и где? Если задача не долгая, возможно помогу.
    Ответ написан
    2 комментария
  • Как можно массово парсить сайты?

    @zkrvndm
    Софт для автоматизации
    Яндекс и гугл умеют находить конкретные слова на конкретных сайтах. Если это какая-то общая задача используйте помощь поисковых систем.
    Ответ написан
    Комментировать
  • Как спарсить сайт через PHP с более 30 тыс. ссылками?

    @zkrvndm
    Софт для автоматизации
    Если хотите многопоточное выполнение по частям, сначала переделайте ваш скрипт с использованием прокси. Потому что без прокси вы скорее всего очень быстро попадете в бан.
    Ответ написан
    Комментировать
  • Как исправить "No 'Access-Control-Allow-Origin' header is present on the requested resource"?

    @zkrvndm
    Софт для автоматизации
    Access-Control-Allow-Origin должен прописать сайт на который вы делайте запрос, а не вы) Но так как ВК разумеется ничего прописывать не будет, то вам нужно проксировать запросы через свой сервер.

    Логика:
    1. Вы делайте запрос на свой сервер
    2. Ваш сервер делает запрос в ВК
    3. Результат запроса отдает вам
    Ответ написан
    Комментировать
  • Какой язык проще использовать для парсинга данных?

    @zkrvndm
    Софт для автоматизации
    Рекомендую JavaScript.

    1. У него низкий порог входа, наиболее простой из языков программирования
    2. Код можно запускать сразу в браузере, открываем консоль браузера, вставляем написанный код и готово, он запустится сразу на том сайте, где ты находишься
    3. И наверное самое главное, это то, что консоль браузера помогает писать тебе код и в случае ошибок явным образом указывает, где именно ты ошибся

    В случае если писать код не получается, попробуйте зеннопостер, он вообще не требует навыков программирования, тупо в визуальном режиме все работает.
    Ответ написан
    Комментировать
  • Как сделать скрипт для ежедневного парсинга?

    @zkrvndm
    Софт для автоматизации
    Предполагается, что у вас есть php-хостинг, тогда вы можете делать так:

    1. Для скачки страниц чужого сайта использовать функцию file_get_contents()
    2. Для парсинга информации со скачанной страницы использовать или регулярки или какую-нибудь библиотеку вроде PHPQuery
    3. Для запуска парсинга по расписанию использовать CRON

    Загуглите все 3 пункта, научитесь пользоваться PHP на базовом уровне и все у вас получится.
    Ответ написан
    Комментировать
  • Как запустить парсер через прокси?

    @zkrvndm
    Софт для автоматизации
    Бери любой сайт с бесплатными прокси и пиши парсер под этот сайт, не вижу в этом никаких проблем.
    Ответ написан
    Комментировать
  • Поиск сайтов по списку и парсинг данных. Такое возможно?

    @zkrvndm
    Софт для автоматизации
    Мой опыт говорит, что такой парсер вполне реально написать, там сложности могут быть лишь с обходом защиты поисковых систем. Но бесплатно вам такой парсер никто не предоставит, обращайтесь на фрилансим и заказывайте под себя.
    Ответ написан
    5 комментариев
  • Как спарсить значение нужного td?

    @zkrvndm
    Софт для автоматизации
    У вас в корне не верный подход. Для поиска номеров лучше всего тупо перебирать ячейки в лоб и проверять текст на соответствие регулярному выражению. Правильно составленная регулярка без проблем вытащит вам все телефоны даже если они в разных форматах записаны.
    Ответ написан
    Комментировать
  • Как дать понять что включен js и как представиться роботом при парсинге страницы?

    @zkrvndm
    Софт для автоматизации
    Попробуйте указать те же заголовки, что отсылал бы реальный браузер.

    Пример:
    <?php
    
    // Указываем тип документа и кодировку:
    header('Content-Type: text/html; charset=utf-8');
    
    // Включаем отображение ошибок:
    
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    
    // Адрес для парсинга:
    $url = 'https://yousite.com';
    
    // Создаём новый сеанс:
    $curl = curl_init();
    
    // Указываем адрес целевой страницы:
    curl_setopt($curl, CURLOPT_URL, $url);
    
    // О отключаем проверку SSL сертификата:
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    
    // Устанавливаем заголовки для имитации браузера:
    
    $headers = [];
    $headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
    $headers[] = 'Accept-Encoding: identity';
    $headers[] = 'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7';
    $headers[] = 'Cache-Control: no-cache';
    $headers[] = 'Connection: keep-alive';
    $headers[] = 'Host: ' . parse_url($url)['host'];
    $headers[] = 'Pragma: no-cache';
    $headers[] = 'Sec-Fetch-Dest: document';
    $headers[] = 'Sec-Fetch-Mode: navigate';
    $headers[] = 'Sec-Fetch-Site: none';
    $headers[] = 'Sec-Fetch-User: ?1';
    $headers[] = 'Upgrade-Insecure-Requests: 1';
    $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36';
    
    
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    
    // Разрешаем переадресацию:
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    
    // Запрещаем прямяой вывод результата запроса:
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    // Делаем сам запрос:
    $result = curl_exec($curl);
    
    // Завершаем сеанс:
    curl_close($curl);
    
    // Смотрим результат:
    echo $result;


    Если метод не помогает, напишите ссылку на сайт, возможно подскажу что.
    Ответ написан
  • Как обойти CloudFlare для bs4?

    @zkrvndm
    Софт для автоматизации
    Парсите в реальном браузере + подключите антикача сервис какой-нибудь.
    Ответ написан
    4 комментария
  • Как обойти блокировку парсера?

    @zkrvndm
    Софт для автоматизации
    Когда вы делайте первый запрос сайт ставит вам куки. Если при дальнейших ваших запросах вы не будете возвращать ранее установленные куки, то разумеется вас будут банить как бота и будут правы.
    5fbe2c8f8e57f037280472.png
    Ответ написан
    Комментировать
  • Парсинг (скрапинг) получение информации с сайтов, авторизация, инструменты, примеры?

    @zkrvndm
    Софт для автоматизации
    Существуют расширения для браузеров, которые позволяют запускать произвольный JavaScript на сайтах, просто используйте их. Ваша задача сведется к тому, что бы набросать скрипт, который заполняет поля и жмет кнопки, после чего полученный UserScript запустить через одно из выше описанных расширений на целевом сайте.

    Да даже больше скажу, при желании можно и без расширений обойтись - просто открывайте консоль браузера, вставляйте и запускайте там какой-угодно JavaSscript, в том числе можно и запустить код для парсинга чего-то.
    Ответ написан
  • Как парсить комментариев vk по ключевому слову?

    @zkrvndm
    Софт для автоматизации
    Я бы вообще не использовал API, а тупо напрямую прошелся бы по всем комментариям при помощи JavaScript-бота.
    Ответ написан
    Комментировать
  • Почему не загружается страница через CURL?

    @zkrvndm
    Софт для автоматизации
    Для того, чтобы не было проблем при загрузке ресурса имеет смысл имитировать реальный браузер. Делает это при помощи передачи тех же заголовков, что отправляет Google Chrome при запросе. Пример передачи заголовков:
    <?php
    
    // Указываем тип документа и кодировку:
    header('Content-Type: text/html; charset=utf-8');
    
    // Включаем отображение ошибок:
    
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    
    // Адрес:
    $url = 'https://ссылка_на_страницу';
    
    // Создаём новый сеанс:
    $curl = curl_init();
    
    // Указываем адрес целевой страницы:
    curl_setopt($curl, CURLOPT_URL, $url);
    
    // О отключаем проверку SSL сертификата:
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    
    // Устанавливаем заголовки для имитации браузера:
    
    $headers = [];
    $headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
    $headers[] = 'Accept-Encoding: identity';
    $headers[] = 'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7';
    $headers[] = 'Cache-Control: no-cache';
    $headers[] = 'Connection: keep-alive';
    $headers[] = 'Host: ' . parse_url($url)['host'];
    $headers[] = 'Pragma: no-cache';
    $headers[] = 'Sec-Fetch-Dest: document';
    $headers[] = 'Sec-Fetch-Mode: navigate';
    $headers[] = 'Sec-Fetch-Site: none';
    $headers[] = 'Sec-Fetch-User: ?1';
    $headers[] = 'Upgrade-Insecure-Requests: 1';
    $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36';
    
    
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    
    // Разрешаем переадресацию:
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    
    // Запрещаем прямяой вывод результата запроса:
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    // Делаем сам запрос:
    $result = curl_exec($curl);
    
    // Завершаем сеанс:
    curl_close($curl);
    
    // Смотрм результат:
    echo $result;
    Ответ написан
    1 комментарий
  • Есть ли готовый парсер, с которым можно связаться по API?

    @zkrvndm
    Софт для автоматизации
    Конечно такой парсер существует - любый облачный хостинг автоматиечски является как раз таким парсером, вам лишь нужно для него написать инструкцию на языке PHP, откуда скачивать html-файлы и что в них потом искать.

    Ну, а если с программированием у вас не очень, то приглядитесь к платным решениям вроде ZennoPoster.
    Ответ написан
    Комментировать
  • Как скачать полностью сайт, сделанный на тильде?

    @zkrvndm
    Софт для автоматизации
    Пользовательское соглашение Тильды не позволяет использовать скачанные сайты, даже если это твой сайт. У меня уже был опыт копирования сайтов, не прошло и месяца, как моему хостеру прилетела жалоба на скопированный сайт, пришлось все удалять.

    Наилучший вариант, это заказать новый сайт, в таком же стиле, тогда не придерутся.
    Ответ написан
  • Существует ли такой парсер xml или html?

    @zkrvndm
    Софт для автоматизации
    Такую задачу можно решить на любом языке программирования, но готовых решений вы не найдете, надо писать самому. Сам бы я написал такой парсер на JavaScript и тупо оформил его в виде небольшого локального html-файла: открыл этот файлик в браузере, подцепил в поле input type="file" папку из диска, а дальше JavaScript-ом читаем все файлы из выбранной папки и распарсиваем при помощи new DOMParser().

    Почему именно JavaScript, а не php или python? Просто JavaScript самый идеальный язык для парсинга html. Там из под коробки есть богатейший набор инструментов для работы с html-кодом, ни один другой язык так хорошо не умеет работать с html, как JavaScript - ведь он буквально создан для этого.
    Ответ написан
    Комментировать
  • Создание поиска информации на странице?

    @zkrvndm
    Софт для автоматизации
    Поисковые алгоритмы это слишком широкая и обширная тема для одного поста. Вам необходимо обратится на фрилансим и заказать там консультацию специалиста, который бы провел вам лекцию по основам. Потому что при большом объеме данных - метод взять и просканировать все страницы на совпадения, не подходит, так вы добьетесь только краха своего сервера.
    Ответ написан
    Комментировать