1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Запись группы результатов в одну строку (для мультикей)

Тема в разделе "Делимся опытом", создана пользователем Антон, 20 янв 2015.

  1. Антон

    Антон A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 июл 2013
    Сообщения:
    31
    Симпатии:
    9
    Хочу спарсить статьи с сайтов. Для одного кея десять статей (первые десять результатов поисковика). И записать их в csv в виде "кей1;текст1;текст2;текстN". Потом новая строка с таким же набором для кей2.
    Можно ли сделать что-то вроде такого:
    Парсим урлы по списку кеев гуглом. Записываем в результат кей1;линк1;линк2;линк3;линк10;
    Если правильно разобрался, то как-то так это можно сделать:

    [​IMG]

    а потом берем и каждую такую строку "кей1;линк1;линк2;линк3;линк10;" делаем запросом для HTML::TextExtractor, как-то КОНСТРУКТОРОМ ЗАПРОСОВ РАЗБИВАЯ строки, чтобы "линк1;линк2;линк3;линк10;" превратились в "query1;query2;query3;query10;" и в результате как-то получить "кей1 (просто копируем из запроса);блок текста с линк1;блок текста с линк2;блок текста с линк3;блок текста с линк10;"

    Можно такое сделать?

    Если нет, то как ещё можно получить такой результат?
     
  2. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.340
    Симпатии:
    1.799
    Получится только в формате:
    Код:
    key1;text1
    key1;text2
    ...
    key1;textN
    парсер принимает запросы построчно из файла, т.е. на первом этапе, когда мы собираем ссылки, необходимо их сохранять с таким форматом:
    Код:
    $p1.serp.format('$query;$link\n')
    Во втором задании добавляем конструктор запросов и разбиваем запрос через разделитель ; на key и query

    В результате можно использовать $query.key который будет содержать наш кей
     
  3. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.340
    Симпатии:
    1.799
  4. Антон

    Антон A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 июл 2013
    Сообщения:
    31
    Симпатии:
    9
    Код:
    $p1.serp.format('$query;$link\n')
    а каждую ссылку отдельно обозначить как-то можно? Чтобы первую сохранить в первый файл результатов (кей;линк), вторую - во второй. И так 10 линков в 10 файлов. Тогда я потом смогу на каждый кей по порядку спарсить статьи и соединить их в экселе, например.
     
  5. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.340
    Симпатии:
    1.799
    Код:
    $p1.serp.0.link $p1.serp.1.link ....
     
  6. Антон

    Антон A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 июл 2013
    Сообщения:
    31
    Симпатии:
    9
    Спасибо!
     
  7. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.340
    Симпатии:
    1.799
    Кстати решение все таки есть, если ссылок на кей немного(10 как в примере) то можно разбить запрос на query1..query10 через конструктор запросов
    Далее добавить 10 парсеров HTML::TextExtractor и каждому прописать свой Query format: $query.query1...
    В результате можно выводить результат в таком формате:

    Код:
    $query.key;$p1.texts.0.text;$p2.texts.0.text;$p3......\n
     
  8. Антон

    Антон A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 июл 2013
    Сообщения:
    31
    Симпатии:
    9
    Вчера под это отдельный софт взял. Но все равно спасибо)
     

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