Как спарсить URL, найденный в обрабатываемом контенте?

Тема в разделе "Решение различных задач по парсингу", создана пользователем VitalyTR, 9 июл 2018.

  1. VitalyTR

    VitalyTR Member Пользователи

    Регистрация:
    18 июн 2018
    Сообщения:
    29
    Город:
    Минск
    Извините за сложное название темы, суть описать будет проще:
    Идет парсинг соцсети, каждый пост может содержать ссылку (шэринг, репост - кто как называет).
    И если эта ссылка указывает на домен этой соцсети, то надо взять контент по этой ссылке.

    Вот для примера:
    Идет парсинг этой страницы Ссылки недоступны для гостей, зарегистрируйтесь или авторизуйтесь на форуме! - каждого поста.
    Я забираю дату, текст сообщения, ссылку и заголовок ссылки - из каждой записи, пишу все это в CSV.

    4й пост сверху (после TMetric) - идет репост записи в Linkedin про рассылку, адресующий по URL на Ссылки недоступны для гостей, зарегистрируйтесь или авторизуйтесь на форуме! - и вот в таком случае мне надо не просто URL и заголовок, но полный текст того поста взять.

    Вот как такое сделать?
    По логике, получив в CD из WBApp код страницы и начав разбор, я должен анализировать ссылки (а не просто записывать в CSV) - и, если домен соответствует искомому, то что-то сделать.
    Есть идеи, коллеги, как такое реализовать, куда копать?
     
  2. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.460
    [CHECKENTRY] в помощь
     
    VitalyTR нравится это.
  3. VitalyTR

    VitalyTR Member Пользователи

    Регистрация:
    18 июн 2018
    Сообщения:
    29
    Город:
    Минск
    Спасибо за ответ.
    Читаю описание макроса CHECKENTRY:
    Проверка на наличие слов (вхождений) в тексте и совершение определенных действий в зависимости от результата проверки
    (Ссылки недоступны для гостей, зарегистрируйтесь или авторизуйтесь на форуме! ), но не могу понять, можно ли в качестве этого действия использовать, к примеру, GETMORECONTENT с нужным URL... Все примеры только на подмену текста завязаны, как мне показалось
     
  4. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    342
    Видимо, как-то так:
    Код:
    [CHECKENTRY(%pattern%)]%url%[TENTEXT]%getmorecontent + text %[ELSETEXT]%getmorecontent%[/CHECKENTRY]
     
    napserious нравится это.
  5. VitalyTR

    VitalyTR Member Пользователи

    Регистрация:
    18 июн 2018
    Сообщения:
    29
    Город:
    Минск
    Да, я в принципе именно так сейчас и пробую сделать:
    Код:
    [CHECKENTRY(https://www.linkedin.com/)][GRAN2][THENTEXT]<GETMORECONTENT><URL="[GRAN2][WBAPPMODE(f:\Content Downloader\WBAppProjects\htmlparse_v1.wbapp)]"></GETMORECONTENT>[/CHECKENTRY]
    - но тут возвращает пустую строку; хотя есть вставлял после thentext просто [GRAN2] (то есть собственно url для считывания), он выводился.

    И в связи с этим вопрос, почему в Вашем ответе формат
    %getmorecontent и
    %getmorecontent%

    то есть с процентами, а не с угловыми скобками? В смысле надо использовать процент или это просто такая личная особенность написания?
     
  6. VitalyTR

    VitalyTR Member Пользователи

    Регистрация:
    18 июн 2018
    Сообщения:
    29
    Город:
    Минск
    Так, в итоге все получилось!
    Замечен странный момент, пока я вставлял getmorecontent вручную, он не работал; когда же я воспользовался конструктором, все Ок:
    upload_2018-7-10_13-51-41.png

    Так что вопрос решен, закрыт, и спасибо всем, кто подсказывал тут на форуме!
     

    Вложения:

    Kreol и xLime нравится это.

Поделиться этой страницей