1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Не включать в раздачу запросы с опред. домен-и зонами + вопрос по regex

Тема в разделе "Делимся опытом", создана пользователем apollo47, 9 авг 2017.

  1. apollo47

    apollo47 A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    28 май 2016
    Сообщения:
    27
    Симпатии:
    5
    Приветствую. До последнего пытался решиться сам - не получилось.

    Задача у меня следующая. У меня есть список ccылок.
    Что нужно... парсить домен (причем важно учитывать http или https) -> заходить на главную -> искать на странице Anchor с вхождением registraion ->полученную ссылку c вхождением registraion сохранять.

    Единственная проблема... как отсекать не нужные мне доменные зоны(сайты) (ru|ua|by) ДО запроса? Сейчас отсекается только ПОСЛЕ чека (в results не попадают не нужные мне зоны), а это доп-я, не нужная нагрузка.

    + столкнулся с проблемой в рег. выражении...
    пытаюсь распарсить ссылку ($query), например, http(s)://domain.com/1/2/3/index.html мне нужно обрезать до http(s)://domain.com (повторюсь, важно учитывать http это или https)

    [​IMG]

    1.
    1.1 - Регулярное выражение возвращает только http(s), не пойму почему не "дергает" еще и домен.
    Сделал на костыле (см. 1.2)
    Т.е строка запрос получается $query.http://$query.domain через этот "сплит" потом и лезу на главную сайта для поиска вхождения registration

    2. Фильтр не дает сохранить домены опред. зон (этот бы фильтр и применить до "запроса")
    2.1. Рег-е выражение ищет в ссылке вхождение зоны и если оно есть -> не включает его в результат.

    Сейчас приходится пользоваться отдельным софтом для удаления ru,ua и тп не нужных зон, только потом чекать.
    Cпасибо!
     
  2. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Здравствуйте.
    1.1 Регулярное выражение возвращает только http(s) потому что они в тоже стоят в запоминающих скобках. То есть первый элемент который забирает регулярка это http, а во вторую переменную (если бы вы её добавили) писался бы домен. Поправьте регулярное выражение. Например на такое.
    https*:\/\/(.*?)\/
    Если вам надо знать http или https протокол используется в адресе то добавьте ещё одну переменную

    По пункту 2.1 уточните что именно не получается.

    Уберите их с файла со ссылками.
     
    #2 Support Денис, 9 авг 2017
    Последнее редактирование: 9 авг 2017
  3. apollo47

    apollo47 A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    28 май 2016
    Сообщения:
    27
    Симпатии:
    5
    Я проверял регулярку в стороннем софте + в php. Возвращает http(s)://домен, грубо говоря $query[0] и содержит в себе что мне надо.
    Ну да, я же написал что сейчас так и приходится делать, отдельно базу чистить.
    ДО чека, нельзя отсеивать нужные мне вхождения (в данном случае доменные зоны) ? Пускай они хоть и в списке есть
     
  4. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    На этапе запросов проверку на несоответсвие провести не получится.
    В конструкторе запросов, чтобы не использовать Extract Domain, вы можете сделать так
    [​IMG]
     
  5. apollo47

    apollo47 A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    28 май 2016
    Сообщения:
    27
    Симпатии:
    5
    хорошо, а сразу можно в одну переменную?
    спасибо.
     
  6. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Да регулярку поменяйте на (https*:\/\/[^\/]+)\/ и оставьте одну переменную
     
  7. apollo47

    apollo47 A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    28 май 2016
    Сообщения:
    27
    Симпатии:
    5
    ну у вас только с https протоколом домены возьмет, судя по регулярке.
     
  8. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    *обозначает 0 или больше вхождений. То есть попадает и http и https
     
    apollo47, Metroid и Forbidden нравится это.

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