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

Пару вопросов насчет js-parser

Тема в разделе "Техническая поддержка по JavaScript парсерам", создана пользователем zbest, 29 сен 2018.

  1. zbest

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    Начал изучать js-парсер и сразу столкнулся с проблемой, ошибка 400 от бинга.

    1.jpg


    Конструктор парсера:

    2.jpg
     
  2. zbest

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    не могу понят логику, как мне отобразить ключи объекта (name,age), в массиве объект?

    Screenshot_1.jpg
     
  3. Support Денис

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

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Здравствуйте. Если вы имеете ввиду заполнить то
    Код:
    results.arrObj.push('Bill',25);
    results.arrObj.push('Alex',30);
    results.arrObj.push('Anns',22);
     
  4. zbest

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    спасибо, значит надо добавить только с методом push, а не присваивать.

    а ошибка 400 от бинга https://a-parser.com/threads/4813/?
     
  5. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.557
    Симпатии:
    2.167
    Скорее всего причина в том, что были изменения в работе парсера Бинга: https://a-parser.com/threads/4685/
    У вас версия 1.2.138, а исправление выпущено в 1.2.270
     
    zbest нравится это.
  6. zbest

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    Здравствуйте, this.editableConf дает доступ к переменному из интерфейса это понятно.
    Данном случаи могу выбрать из гугл пресетов.
    Screenshot_1.jpg

    возможно ли также добавить переопределитель к пресету, например изменит page count пресета use anti-captcha?
    или все таким заранее надо создать пресет с нужными настройками?
    Screenshot_2.jpg
     
  7. Support Денис

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

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Можно добавить оверрайд опцию
    Код:
     yield this.parser.request(parser, preset, overrideParams, query)
    Третий параметр этого метода принимает перегруженные опции.
    Код:
    let response = yield this.parser.request('SE::Google','default',{
                    proxyretries : 100,
                    pagecount : 1,
                },set.query);
    То есть будет использован SE::Google SE::Google с пресетом default, но использовать 100 попыток и парсить 1 страницу.
     
    zbest и Support нравится это.
  8. zbest

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    Спасибо, а откуда можно узнать какие свойства объекта овервайд отвечают на какие параметра пресета? например как будет кол. результатов на страницу?
     
  9. Support Денис

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

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

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    спасибо еще один вопрос, надеюсь смогу объяснить.

    let response = yield this.parser.request('SE::Google', this.conf.SE_Google_preset, {pagecount : 1, linksperpage: 10}, set.query);

    Вопрос: Могу я как то увидеть как выглядит объект response. Какие у него свойство, и главное как эти свойства выглядят?

    Я пол дня пытался добавить данные в results.serp из response.serp, думал они выглядят так же как показано в тестирования шаблонов

    Код:
    "serp" : [
          {
             "link" : "http://www.speedtest.net/",
             "snippet" : "<b>Test</b> your Internet connection bandwidth to locations around the world with this <br>interactive broadband speed <b>test</b> from Ookla.",
             "anchor" : "Speedtest.net by Ookla - The Global Broadband Speed <b>Test</b>"
          }]
    то есть массив объектов с ключами линк, сниппет и анкор. Оказывается response.serp массив строк и выглядеть так:
    Код:
    ['link', 'anchor', 'snippet'...]
     
    #10 zbest, 4 окт 2018
    Последнее редактирование: 4 окт 2018
  11. Support Денис

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

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    чтобы посмотреть из чего состоит объект вы можете вывести его в логе
    this.logger.put(JSON.stringify(объект));.
    Да response.serp, если это ответ от парсера гугла, массив строк
     
    #11 Support Денис, 4 окт 2018
    Последнее редактирование: 4 окт 2018
    zbest нравится это.
  12. zbest

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    день добрый, подскажите пожалуйста из-за чего ошибка?

    Screenshot_3.jpg
    Screenshot_2.jpg
     
  13. Support Денис

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

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Это потому что response вы объявляете внутри цикла. Вне цикла такой переменной нет. Можете почитать здесь
    https://learn.javascript.ru/functions-closures
     
    zbest нравится это.
  14. zbest

    zbest A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 фев 2013
    Сообщения:
    36
    Симпатии:
    5
    блин забыл про let, на var привык.
    Спасибо
     

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