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

    @spaceatmoon
    Используй всегда ограничение на время ожидания ответа.

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //5 секунд
    Ответ написан
  • Как дождаться загрузки YouTube selenium + phantom.js (c#)?

    @spaceatmoon
    По скриншотам всё у тебя находит. У тебя искомый элемент динамический и подгружается отдельно. Тем более у тебя нет проверки на количество элементов.

    using OpenQA.Selenium;
    using OpenQA.Selenium.Firefox;
    using OpenQA.Selenium.Support.UI;
    ....
    ....
    ....
    using (IWebDriver driver = new FirefoxDriver())
                {
                    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
                    driver.Navigate().GoToUrl("https://www.youtube.com");
                    wait.Until(web => {
                        var result = driver.FindElements(By.CssSelector("ytd-rich-item-renderer"));
                        return result.Count > 70;
                    });
                    var result = driver.FindElements(By.CssSelector("ytd-rich-item-renderer"));
                    foreach (var element in result)
                    {
                        Console.WriteLine(element.Text);
                    }
                }


    Я попробовал так. Когда я скролю браузер, подгружаются элементы и как только их становится больше 70 тут же переходит к следующему блоку кода.
    Ответ написан
    Комментировать
  • Как на JAVA парсить onion сайты?

    @spaceatmoon
    Вот для питона. Сам не пробовал, но понял принцип что вам надо общаться через сокс. Поймете принцип, сделаете и для java

    https://jarroba.com/anonymous-scraping-by-tor-network/

    Тык
    Если не секрет, что вы нашли интересного такого, что приходится парсить? Разве tor не помойка?
    Ответ написан
    6 комментариев
  • Возможно ли обойти reCaptcha при парсинге поисковой выдачи Google?

    @spaceatmoon
    Фишка гугловской рекапчи, что она сидит в коде на требуемом вам сайте. При прохождении капчи отправляется форма вместе с секретным ключом, который проверяется у гугла, что секретный ключ правильный и после этого идет обычная работа сайта.

    Так что скорей всего у вас не получится "на изи", там все же специалисты не за 40к зп сидят.

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

    @spaceatmoon
    Почему ты просто не сделаешь так?

    if (isset($categories[$category]) {
     echo $category;
    }


    А еще не понятно зачем ты делаешь запрос к базе и прокручиваешь свое условие внутри результата, у тебя точно что-то приходит с бд?
    spoiler
    $sql = mysqli_query($db_connect, "SELECT `fk_i_category_id`, `s_name` FROM `oc_t_category_description` WHERE 1");
            $result = mysqli_fetch_all($sql);
     
            echo $category . "<br>";
     
            foreach ($result as $s) {
     
                foreach ($categories as $cat) {
     
                    if (key($categories) == $category){
     
                        echo current($cat);
     
                    }
     
                }
            }

    Ответ написан
  • Откуда парсить города и регионы?

    @spaceatmoon
    Вы неправильно решаете задачу. Большинство типовых задач нужно решать от кого-то к себе, а не от себя кому-то.

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

    @spaceatmoon
    Могу сказать что делать маппинг из пустого в порожнее это просто, а сделать приложение которая решает жизненные проблемы это другое.

    Поэтому только через опыт. Я вот писал 2 парсера. Оба они на что-то заточены. Первый товары в любом объеме может парсить прямо в сайт. Второй мой последний может парсить для последующего каркаса будущего сайта. Сейчас в скором времени буду писать мегакомбайн способный парсить любой контент руками домохозяйки. Ибо самому даже задрало настраивать одно и тоже. Актуально это для соцсеточек, всяких фото галерей. Но тут с SPA, js и весь этот бред, нужно какое-то решение.

    Желательно чтобы на калькуляторе работало. Я думаю на js лучше не писать парсеры, только в ноги стрелять им. Очень прикольный и костыльный язык - люблю и ненавижу его.
    C#, python, PHP, GO думаю норм будет.

    Я вот пишу на PHP и мне норм, если меня не устраивает скорость, то я просто фигачу новый 24МБ поток и все.

    Все зависит как вы архитектуру умеете строить. Я вот не смотря на опыт, все равно пишу чувствуя что пишу ересь и поэтому можно переписать. Помните, рефакторинг - зло. Можно переписывать тысячу раз Фибоначчи и все равно это будет мусор.
    Ответ написан
  • Почему не работает первый пример из документации PHP HTML Parser?

    @spaceatmoon
    Не рекомендую использовать эту библиотеку. Документации кроме как на главной странице проекта я не нашел или плохо искал. Поэтому о её возможностях только догадываешься. Почитал что внутри либы есть и она походу не умеет искать по аттрибутам, что в принципе и в доках не описано.

    Я лично пробовал пользоваться этой библиотекой. В итоге поплевался и ушел обратно на Simple HTML DOM
    simplehtmldom.sourceforge.net

    Уже 4 года как библиотека не обновлялась, а поддерживает все извращенские методы поиска контента.
    Проста как палка и отличная документация. Для PHP этого наверное must have.
    Ответ написан
    5 комментариев