Михаил Сисин Со-основатель облачного сервиса по сбору информации и парсингу сайтов Diggernaut. Работает в области сбора и анализа данных, а также разработки систем искусственного интеллекта и машинного обучения  более десяти лет.

Бесплатный парсер Авито поможет вам собрать информацию о товарах

Бесплатный парсер Авито поможет вам собрать информацию о товарах

Представленный здесь парсер авито поможет вам собрать информацию и товарах из объявлений в системе Avito.ru. Авито является одной из самых популярных в России досок объявлений частных лиц, на которой представлены десятки миллионов товаров. С помощью этого парсера вы сможете забрать информацию о товарах, представленных в заданной категории, а также, если вы будете использовать собственный российский прокси – контактную информацию продавца.

обновление мобильного парсера 28.01.2019 в связи с обновлением на мобильном сайте Авито

Небольшое дополнение. Основной парсер в данной статье парсит обычную версию сайта. В обычной версии сайта телефоны показываются как изображения, а потому требуют специальный OCR функционал, который есть у нас в облаке, но отсутствует в скомпилированной версии. Поэтому запуск парсера вне нашего облака был ранее практически невозможен (была возможность сбора данных без контактных телефонов). Теперь мы представляем вам также парсер для мобильной версии сайта. Этот парсер не требует OCR, и вы сможете использовать скомпилированную версию парсера у себя на компьютере или сервере.

Примерное количество товаров: в зависимости от категории от нескольких сотен до нескольких миллионов
Примерное количество запросов: в зависимости от категории от нескольких сотен до нескольких миллионов
Рекомендуемый план подписки: в зависимости от категории от Free до XX-Large

ВНИМАНИЕ! Количество запросов может превышать количество товаров, потому что данные о вариациях, изображениях и др. могут парсится используя запросы к дополнительным ресурсам. Также часть данных о товаре может доставляться с помощью XHR запросов, что также увеличивает общее количество необходимых запросов.

Как пользоваться парсером объявлений авито

Для использования парсера информации с сайта Авито вы должны иметь учетную запись в нашем сервисе Diggernaut.

  1. Пройдите по этой ссылке для регистрации в сервисе Diggernaut
  2. После регистрации и подтверждения email адреса войдите в свою учетную запись
  3. Создайте проект с любый именем и описанием, если вы не знаете как, обратитесь к нашей документации
  4. Войдите во вновь созданный проект и создайте в нем диггер с любым именем, если вы не знаете как, обратитесь к нашей документации
  5. Скопируйте в буфер обмена приведенный ниже сценарий диггера и вставьте его в созданный вами диггер, если вы не знаете как, обратитесь к нашей документации
  6. ВНИМАНИЕ! Базовые прокси сервера не позволят вам собирать контактную информацию продавцов. Для этого вам будет нужен собственный российский прокси-сервер. Тип прокси должен быть HTTP/HTTPS (SOCKS4/5 в данный момент не поддерживаются). Вы должны будете прописать ваш прокси сервер в сценарии, как указано. Если этот пункт вам непонятен и вы затрудняетесь как это сделать, свяжитесь с нами через систему поддержки или используя наш онлайн чат, мы обязательно вам поможем. Обратите внимание что символа # не должно быть в строке с вашим прокси, очень многие делают ошибку, оставляя символ решетки перед своим прокси. Другими словами в строке с вашим прокси должно быть не:
    proxy: #1.1.1.1:8888

а

    proxy: 1.1.1.1:8888

Естественно вы должны использовать IP, порт (и возможно логин и пароль для прокси) именно вашего прокси, а не примера данного в этой статье.

  1. При необходимости, в 10 строке сценария поставьте URL категории, которую вы хотите парсить, то есть замените категорию, которая стоит сейчас, нужной вам.
  2. Переключите режим работы диггера с Debug на Active, если вы не знаете как, обратитесь к нашей документации
  3. Запустите ваш диггер и дождитесь окончания его работы, если вы не знаете как, обратитесь к нашей документации
  4. Скачайте собранный набор данных в нужном вам формате, если вы не знаете как, обратитесь к нашей документации

В дальнейшем вы можете установить расписание для запуска вашего парсера и забирать информацию регулярно. Также вы можете скомпилировать ваш диггер для запуска его на вашем компьютере или сервер, для получения дополнительной информации, обратитесь к документации.

Сценарий парсера обычной версии сайта Авито

---
config:
    debug: 2
    proxy: #ВСТАВЬТЕ СЮДА ВАШ ПРОКСИ СЕРВЕР В ВИДЕ 1.1.1.1:8888
    agent: "Firefox"
do:
- link_add:
    pool: catalog
    url:
    - https://www.avito.ru/kostroma/detskaya_odezhda_i_obuv
- walk:
    to: links
    pool: catalog
    do:
    - sleep: 3
    - find:
        path: a.js-pagination-next
        do:
        - parse:
            attr: href
        - space_dedupe
        - trim
        - if:
            match: \w+
            do:
            - normalize:
                routine: url
            - link_add:
                pool: catalog
    - find:
        path: a.item-description-title-link
        do:
        - parse:
            attr: href
        - space_dedupe
        - trim
        - if:
            match: \w+
            do:
            - normalize:
                routine: url
            - link_add:
                pool: pages
- walk:
    to: links
    pool: pages
    do:
    - find:
        path: div.item-view-content
        do:
        - object_new: item
        - static_get: url
        - object_field_set:
            object: item
            field: url
        - find:
            path: .item-view-header span.title-info-title-text
            in: doc
            do:
            - parse
            - space_dedupe
            - trim
            - object_field_set:
                object: item
                field: title
        - find:
            path: div.item-view-right span.price-value-string
            in: doc
            do:
            - find:
                path: span.price-value-prices-list-item-currency_sign
                do:
                - parse
                - normalize:
                    routine: replace_matched
                    args:
                    - ₽: RUB
                - object_field_set:
                    object: item
                    field: currency
            - node_remove: span.price-value-prices-list-item-currency_sign
            - parse:
                filter: (\d+)
            - object_field_set:
                object: item
                field: price
        - find:
            path: div.item-description-text
            do:
            - parse
            - space_dedupe
            - trim
            - object_field_set:
                object: item
                field: description
        - find:
            path: span[itemprop="address"]
            do:
            - find:
                path: meta[itemprop="addressLocality"]
                do:
                - parse:
                    attr: content
                - space_dedupe
                - trim
                - object_field_set:
                    object: item
                    field: city
            - parse
            - space_dedupe
            - trim
            - object_field_set:
                object: item
                field: address
        - find:
            path: div.gallery-img-frame
            do:
            - parse:
                attr: data-url
            - space_dedupe
            - trim
            - if:
                match: \w+
                do:
                - normalize:
                    routine: url
                - object_field_set:
                    object: item
                    field: image
                    joinby: "|"
        - find:
            path: div.item-view-seller-info div.seller-info-name
            do:
            - parse
            - space_dedupe
            - trim
            - object_field_set:
                object: item
                field: seller
        - find:
            in: doc
            path: script:contains('avito.item.phone')
            do:
            - static_get: url
            - variable_set: referer
            - parse:
                filter: avito\.item\.phone\s*\=\s*'([^']+)'
            - variable_set: key
            - parse:
                filter: avito\.item\.url\s*\=\s*'[^']+_(\d+)';
            - variable_set: id
            - eval:
                routine: js
                body: '(function (){var key = "<%key%>"; var id = "<%id%>"; var pre = key.match(/[\da-f]+/g); if (id % 2 == 0) {pre = pre.reverse();} var mixed = pre.join(""); var s = mixed.length; var r = ""; for (var k = 0; k < s; k++) {if (k%3 == 0) {r += mixed.substr(k, 1);}} return r; })();'
            - variable_set: pkey
            - sleep: 10
            - walk:
                to: https://www.avito.ru/items/phone/<%id%>?pkey=<%pkey%>
                do:
                - find:
                    path: image64
                    do:
                    - parse:
                        filter: data\:image\/png\;base64\,(.+)
                    - ocr:
                        do:
                        - text
                        - object_field_set:
                            object: item
                            field: phone
        - object_save:
            name: item

Сценарий парсера мобильного сайта Avito

---
config:
    debug: 2
    agent: "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36"
do:
- link_add:
    pool: catalog
    url: https://m.avito.ru/rossiya/drugie_zhivotnye/sh_zhivotnye?q=%D0%BA%D0%BE%D1%80%D0%BE%D0%B2%D1%8B
- walk:
    to: links
    pool: catalog
    do:
    - variable_clear: key
    - variable_clear: sp
    - variable_clear: laststamp
    - find:
        path: script
        do:
        - variable_get: key
        - if:
            match: \S
            else:
            - parse:
                attr: src
            - if:
                match: mstatic\/build
                do:
                - set_converter:
                    content_type: application/javascript
                    converter: image
                - walk:
                    to: value
                    do:
                    - find: 
                        path: imgbase64
                        do: 
                        - parse
                        - normalize:
                            routine: Base64Decode
                        - filter: 
                            args:
                                - params\:\{key\:"([^"]+)"
                        - variable_set: key
                - clear_converter:
                    content_type: application/javascript
    - find:
        path: script:contains('window.__initialData__')
        do:
        - parse
        - eval:
            routine: js
            body: (function () {var window = {}; <%register%>; return JSON.stringify(window.__initialData__);})();
        - normalize:
            routine: json2xml
        - to_block
        - find:
            path: search > searchparams > *
            do:
            - variable_get: nodeName
            - normalize:
                routine: replace_substring
                args:
                - categoryid: categoryId
                - locationid: locationId
            - variable_set: nodeName
            - parse
            - register_set: <%sp%>&<%nodeName%>=<%register%>
            - variable_set: sp
        - register_set: key=<%key%><%sp%>
        - variable_set: sp
        - find:
            path: search > laststamp
            do:
            - parse
            - variable_set: laststamp
    - variable_set:
        field: repeat
        value: "yes"
    - variable_set:
        field: page
        value: 1
    - walk:
        to: https://m.avito.ru/api/9/items?<%sp%>&page=<%page%>&lastStamp=<%laststamp%>&display=list&limit=30
        repeat: <%repeat%>
        do:
        - sleep: 3
        - variable_set:
            field: repeat
            value: "no"
        - find:
            path: status
            do:
            - eval:
                routine: js
                body: (function () {var page = <%page%>; return page + 1;})();
            - variable_set: page
        - find:
            path: result > laststamp
            do:
            - parse
            - variable_set: laststamp
        - find:
            path: result > items > value > uri_mweb
            do:
            - variable_set:
                field: repeat
                value: "yes"
            - parse
            - if:
                match: \w+
                do:
                - normalize:
                    routine: url
                - variable_set:
                    field: repeat2
                    value: "yes"
                - walk:
                    to: value
                    repeat: <%repeat2%>
                    do:
                    - sleep: 3
                    - find:
                        path: 'div#app'
                        do:
                        - variable_set:
                            field: repeat2
                            value: "no"
                        - object_new: item
                        - static_get: url
                        - object_field_set:
                            object: item
                            field: url
                        - find: 
                            path: script:matches(window\.\_\_initialData\_\_\s*\=) 
                            in: doc
                            do: 
                            - parse
                            - eval:
                                routine: js
                                body: (function () {var window = {}; <%register%>; return JSON.stringify(window.__initialData__);})();
                            - normalize:
                                routine: json2xml
                            - toblock
                            - find: 
                                path: body_safe 
                                do: 
                                - find: 
                                    path: list:hasChild(type:matches(phone)) > value > uri
                                    do: 
                                    - parse:
                                        filter: 
                                            - number\=(.+)\s*$
                                    - if:
                                        match: \d
                                        do:
                                        - normalize:
                                            routine: URLDecode
                                        - object_field_set:
                                            object: item
                                            field: phone
 
                                - find: 
                                    path: 'images > safe_640x480'
                                    do: 
                                    - parse
                                    - if:
                                        match: \S
                                        do:
                                        - object_field_set:
                                            object: item
                                            field: image
                                            joinby: "|"
                        - find:
                            path: 'h1[itemprop="name"]'
                            in: doc
                            do:
                            - parse
                            - space_dedupe
                            - trim
                            - object_field_set:
                                object: item
                                field: title
                        - find:
                            path: 'meta[itemprop="priceCurrency"]'
                            do:
                            - parse:
                                attr: content
                            - object_field_set:
                                object: item
                                field: currency
                        - find: 
                            path: 'meta[itemprop="price"]' 
                            do: 
                            - parse:
                                attr: content
                            - object_field_set:
                                object: item
                                field: price
                        - find:
                            path: 'meta[itemprop="description"]'
                            do:
                            - parse:
                                attr: content
                            - space_dedupe
                            - trim
                            - object_field_set:
                                object: item
                                field: description
                        - find:
                            path: 'span[data-marker="delivery/location"]'
                            do:
                            - parse
                            - space_dedupe
                            - trim
                            - object_field_set:
                                object: item
                                field: address
 
                        - find:
                            path: 'span[data-marker="seller-info/name"]'
                            do:
                            - parse
                            - space_dedupe
                            - trim
                            - object_field_set:
                                object: item
                                field: seller
                        - object_save:
                            name: item
                    - find:
                        path: body
                        do:
                        - variable_get: repeat2
                        - if:
                            match: "yes"
                            do:
                            - proxy_switch

Обратите внимание, что стартовый URL должен вести на мобильный сайт, а не на основной: m.avito.ru вместо www.avito.ru

Пример данных, собранных парсером с сайта (номера телефонов замаскированы намеренно)

Ниже приведен пример датасета с несколькими товарами в формате JSON (для наглядности). Датасет может быть скачан и как CSV, XLSX, XML, и любой другой текстовый формат используя темплейтный подход.

[{
    "item": {
        "address": "",
        "city": "Кострома",
        "currency": "RUB",
        "description": "Качественная куртка на девочку рост 152-156,очень хорошее состояние , ещё есть плащ,пальто,ветровки все вещи очень хорошего качества и состояния.Торг",
        "image": "https://57.img.avito.st/640x480/3767143557.jpg|https://44.img.avito.st/640x480/3767143544.jpg|https://06.img.avito.st/640x480/3767143606.jpg",
        "phone": "8 910 951-XX-XX",
        "price": "1000",
        "seller": "Владелец",
        "title": "Куртка orbi",
        "url": "https://www.avito.ru/kostroma/detskaya_odezhda_i_obuv/kurtka_orbi_1216046098"
    }
}
,{
    "item": {
        "address": "р-н Центральный",
        "city": "Кострома",
        "currency": "RUB",
        "description": "Очень теплый фирменный костюм. Современные непромокаемые ткани, утеплитель термофайбер, на замочке в самые сильные морозы пристегивается овечья жилеточка. Натуральная опушка енота. Атласная ткань очень красиво смотрится. Цвет куртки серебро.Размер 98+6(в наличии 2 шт) Есть в размере 92+, в сиреневом цвете и черно малиновом цвете. Смотрим мой профиль.",
        "image": "https://94.img.avito.st/640x480/3937582594.jpg|https://11.img.avito.st/640x480/3991374611.jpg|https://81.img.avito.st/640x480/3991375181.jpg|https://34.img.avito.st/640x480/3991375634.jpg",
        "phone": "8 953 643-XX-XX",
        "price": "2900",
        "seller": "Анна",
        "title": "Новый фирменный зимний костюм 98(+6)",
        "url": "https://www.avito.ru/kostroma/detskaya_odezhda_i_obuv/novyy_firmennyy_zimniy_kostyum_986_971178895"
    }
}
,{
    "item": {
        "address": "р-н Заволжский",
        "city": "Кострома",
        "currency": "RUB",
        "description": "Продам очень красивый комбинезон фирмы PULKA, спереди и сзади расшит жемчужными бусинами, на капюшоне мех кролика. Рост 86+6 зимний, очень тёплый. Носили не долго, очень быстро выросли, поэтому состояние нового. Стоил 10000 руб, отдаю значительно дешевле, могу переслать.",
        "image": "https://77.img.avito.st/640x480/4000143977.jpg|https://89.img.avito.st/640x480/4000143989.jpg|https://50.img.avito.st/640x480/4000144650.jpg|https://90.img.avito.st/640x480/4000144890.jpg|https://28.img.avito.st/640x480/4000146328.jpg|https://18.img.avito.st/640x480/4005046218.jpg|https://48.img.avito.st/640x480/4005059848.jpg",
        "phone": "8 953 644-XX-XX",
        "price": "3500",
        "seller": "Ирина",
        "title": "Зимний комбинезон для девочки",
        "url": "https://www.avito.ru/kostroma/detskaya_odezhda_i_obuv/zimniy_kombinezon_dlya_devochki_1179134523"
    }
}
,{
    "item": {
        "address": "",
        "city": "Кострома",
        "currency": "RUB",
        "description": "Новый шлем Ралли Цвет: Серый, размер 52-54",
        "image": "https://08.img.avito.st/640x480/4072842008.jpg",
        "phone": "8 953 653-XX-XX",
        "price": "300",
        "seller": "Светлана",
        "title": "Новая шапка-шлем на мальчика",
        "url": "https://www.avito.ru/kostroma/detskaya_odezhda_i_obuv/novaya_shapka-shlem_na_malchika_1161685106"
    }
}]
Михаил Сисин Со-основатель облачного сервиса по сбору информации и парсингу сайтов Diggernaut. Работает в области сбора и анализа данных, а также разработки систем искусственного интеллекта и машинного обучения  более десяти лет.

48 Replies to “Бесплатный парсер Авито поможет вам собрать информацию о…”

  1. он не скачивается, то есть компилируется, но загрузить его не удается, пробовал вначале в xlsx, затем в CSV

    1. Для запуска парсера не нужно его компилировать, если вы хотите запустить его в облаке. Для того, чтобы скачать файл с данными нужно запускать диггер в активном режиме. В режиме отладки скачивание запрещено, доступен только просмотр. Более подробно с работой сайта можно ознакомиться здесь: Создаем диггер и работаем с ним

    1. Для того, чтобы сайт показывал телефоны, запрос должен быть сделан с российского IP. Вам нужно использовать российский прокси.

  2. В компилированном виде не дает телефоны (свои прокси прописаны – аж полсотни штук, и на облаке телефоны есть).
    Не собирает title и price. Ни в облаке, ни компилированный. Проверял CSS запросы из сценария на страницах собранных в базу — все четко находится.
    Для компилироаных сборок в пакете — файл настроек. Изменения в нём учитываются роботом? А то в документации не удалось найти ответа на этот вопрос.

    1. По поводу title и price разберёмся и обновим статью в ближайшее время. Спасибо!

      Да телефоны в скомпилированном диггере получить не получится т.к OCR работает только в облаке. Можно сохранять картинки с телефонами как base64.

      Файл в сборке конфиг с которым был скомпилирован диггер, и никак не влияет на его работу.

  3. Не выдаёт телефоны, собирает всю информацию, а в файле результатов столбца “phone” просто нет.

    1. Для того, чтобы сайт показывал телефоны, запрос должен быть сделан с российского IP. Вам нужно использовать российский прокси.

  4. Перепробовал несколько российских прокси серверов, ни с одним не получается собрать телефоны. Все данные, кроме телефона, собираются.

    1. Видимо Вы используете бесплатные или заблокированные прокси, с ними не получится нормально работать. Мы протестировали с заведомо хорошим прокси, телефоны забираются нормально, проблемы в логике парсера нет.

    2. Ну и запускать парсер нужно в облаке, в скомпилированном парсере отсутствует доступ к OCR функционалу (поскольку это наш облачный микросервис), а потому телефоны извлекаться тоже не будут.

  5. Помогите, пожалуйста. Скопировал сценарий, вставил ссылку на Авито с примененными фильтрами, вставил прокси, купленный на одном из сайтов (IPv4. приватный).
    Должно работать, но выдает ошибку в логах: Proxy Authentication Required.
    Я так понял, нужно где-то логин и пароль прокси-сервера ввести? Где это нужно сделать?

    1. Если прокси требует авторизацию по паролю, прокси в конфиге надо указывать следующим образом:
      user:pass@proxyip:port
      где
      user – логин для доступа к прокси
      pass – пароль для доступа к прокси
      proxyip – ip адрес прокси сервера
      port – порт прокси сервера

      Например: johndoe23:qwe123@1.1.1.1:3128

      1. Михаил, Евгений, спасибо Вам большое. Теперь все работает отлично.
        А можно ли использовать этот сценарий для парсинга Юлы? Или хотя бы адаптировать его каким-то образом для этого?

        1. К сожалению для других доменов данный конфиг использовать не получится, только если писать новый с повторением структуры датасета.

  6. Скажите, пожалуйста, а можно ли как-то парсить данные за определенный промежуток времени? Допустим я спарсил данные 21.09.18, на сегодня, 27.09.18, много новых товаров добавилось, но парсить все, что парсил до этого нет смысла повторно ради этого.

    1. Да это возможно, у нас есть документация https://www.diggernaut.ru/dev/meta-yazyk-metody-navigatsiya-walk.html (раздел параметры, mode) где можно посмотреть как это сделать.
      В данном примере нужно добавить в

      - walk:
          to: links
          pool: pages
          do:
      

      спецальный режим:

      - walk:
          to: links
          pool: pages
          mode: unique
          do:
      
  7. здравствуйте.все настроил. ошибка вылетает: JSON Schema error: invalid character ‘-‘ in numeric literal

    1. У Вас ошибка в валидационной JSON схеме. Скорее всего вставили конфиг диггера не в то окно редактора.

  8. Запустил. настроил. все парсит, кроме телефонов. таких строк даже нет. пробовал разные российские прокси. проверил их на работоспособность. оказались рабочие. а телефоны не могу парсить

    1. Проверили парсер с нашим прокси, все работает как надо. Проблема в Вашем прокси, возможно он заблокирован Авито. Если вы используете бесплатные публичные прокси, то такая ситуация весьма частая.

    2. Свяжитесь с нами через форму поддержки, сообщите ID диггера, попробуем помочь.

  9. Здравствуйте, Михаил. Парсить скрытые номера он умеет? А именно номера из резюме.

    1. Добрый день, Ольга. Насколько я знаю, доступ до резюме в Авито платный, посему подразумевает авторизацию в Авито. Данный парсер предназначен только для сбора публично доступной информации, поэтому для резюме его использовать не получится, к сожалению.

  10. Здравствуйте, есть ли возможность парсить только новые объявления? Чтобы он при включении, например, раз в неделю, собирал свежие посты и не трогал уже обработанные.

    1. Возможно, нужно использовать команду walk в режиме unique. Для этого в основном парсере нужно найти строку 44:

      - walk:
          to: links
          pool: pages
          do:
      

      и заменить на

      - walk:
          to: links
          mode: unique
          pool: pages
          do:
      

      А если используете парсер для мобильной версии то в строке 42:

                  - walk:
                      to: value
                      do:
      

      меняем на

                  - walk:
                      to: value
                      mode: unique
                      do:
      

      Но данный режим работает только при запуске парсера у нас в облаке.

  11. Здравствуйте, а возможно ли сделать так, чтобы диггер парсил только новые объявления? Например, чтобы при включении раз-два в неделю, он игнорировал уже пройденные ссылки.

    1. Прошу прощения за двойной пост – браузер почему-то не показывал, что сообщение было отправлено. Спасибо за помощь с проблемой.

    1. Нужно найти CSS селектор для контейнера на странице в котором находится дата и использовать команду find по аналогии с другими такими же командами. Более подробно о мета-языке можно прочитать здесь

  12. Здравствуйте .Такой вопрос мне нужен парсер Авито недвижимость ,есть ли возможность у вас создать мне парсер по моим пожеланиям.Конечно за плату.Мне до этого создали парсер ,ну почему то она не парсит.На мой вопрос он отвечает мол VPN блокирует.А ничего сделать он не может.И мне нужен именно компетентный в этом вопросе человек.

    1. Добрый вечер, да это возможно. Вы можете заполнить форму запроса кастомного парсера и мы свяжемся с Вами по email, пришлем информацию по стоимости и срокам разработки. Постарайтесь максимально описать что именно Вы хотите забирать (какие поля), с какой страницы и тд.

  13. Добрый день!
    Сегодня воспользовался режимом unique. Первый запуск не дал результата – он спарсил все товары в категории. Второй запуск успешный – спарсил 9 новых товаров и остановился.
    До этого последний раз парсер запускался две недели назад. Получается, с данными двухнедельной давности он уже не может сравнивать?

    1. Добрый день, Дамир. Все правильно. Пока режим не включен, система не кэширует адреса страниц. Поэтому после включения режима первым запуском заберется все, а далее уже будут забираться только новые страницы.

      1. Михаил, а если я теперь в следующий раз запущу парсер допустим через 2 недели, он вспомнит какие страницы уже забирал? Или кэш хранится только неделю?

        1. Дамир, кэш хранится неограниченное количество времени. Поэтому можно смело запускать и через 2 недели и через 2 месяца.

  14. Добрый день!
    Недавно Авито добавил услугу “Бесплатная защита номера” в категории “Недвижимость” моего региона. Теперь парсер собирает “левые” номера. Есть ли какие-то способы борьбы с этим?

    1. Добрый день, нет никакого способа получить реальный номер, т.к авито всегда будет предоставлять подменный(но насколько я понимаю стоит переадресация на реальный номер)

  15. Добрый день!
    Как установить еженедельное расписание запуска парсера? Когда пытаюсь это сделать, сверху на красном фоне пишет “Не удалось сохранить расписание”.

  16. Очень удобный сервис, еще немного потестирую и ориентируюсь на тарифный план. Пока, конечно, перед этим вопросы остаются. Один из вопросов – представленный сценарий по парсингу с авито работает хорошо, но у меня вопрос – как сделать, чтобы парсилась еще и дата добавления (актуализации) объявления?

      1. Спасибо! И еще почему-то заметил, что переменные {{ }} не выводятся, когда настраиваешь шаблон XML, вместо них одни пробелы. Сами переменные берутся из образцов ваших же шаблонов (был где-то под YML для Я.М). В итоги пришлось на регулярных выражениях в notepad++ написать конвертер вашего xml в фид Я.Недвижимость.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *