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

Улучшение [1.2.404] SE::Google::Suggest не оттуда парсит подсказки

Тема в разделе "1.2.434", создана пользователем DeLaKroiX, 24 янв 2019.

  1. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    я тут внезапно одну штуку заметил. мне кажется SE::Google::Suggest не оттуда парсит подсказки, поэтому получаются странные результаты, которые зачастую вообще не имеют отношения к реальности. вот сравните эти два линка. апарсер парсит первый линк:
    https://www.google.com/complete/sea...=psy-ab&xssi=t&gs_ri=gws-wiz&hl=en&authuser=0
    http://suggestqueries.google.com/co...me&hl=en&gl=us&callback=?&q=slot real money x
    тоесть во втором линке нет подсказок, но есть одно но. по первому линку приходят подсказки, которые дополняют введённый кей фактически рандомным словом, тогда как по второму приходят только подходящие кеи, и если их нет - гугл не будет изворачиваться и пытаться предложить что-то непонятное, а просто скажет что кеев нет. чтобы было нагляднее - при вводе этого запроса мы получим вот такую часть подсказки http://dl4.joxi.net/drive/2019/01/24/0020/3690/1338986/86/be82a668b3.png которая собственно и распознаётся апарсером, как кейворд из подсказки, хотя фактически он является мусорным и выдаётся гуглом, можно сказать, от безысходности )) а вот когда у гугла действительно есть кеи для подсказок - тогда результаты по линкам будут одинаковыми. можете для примера подставить туда кей "slot real money b", там всё будет наглядно.
    вобщем я предлагаю либо исправить линк на тот, который не парсит мусора, либо сделать какую-нибудь надстройку для парсера, позволяющую выбрать, откуда парсить подсказки.
    и очень большая просьба рассмотреть и реализовать это как можно быстрее )
     
    d4k нравится это.
  2. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    и да, забыл написать, есть большая разница в количестве подсказок, которые получаются по ссылкам. возьмите для примера кей "seven card stud to". апарсер по нему получит 10 подсказок, а по второму линку можно получить 19 подсказок. я так понимаю, по второму линку гугл отдаёт всё, что знает, а первый это так, чтобы помещалось на экране у юзера.
     
    d4k нравится это.
  3. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    ещё одну штуку заметил, параметр client должен быть chrome, иначе будет выдаваться максимум 10 результатов.
     
    #3 DeLaKroiX, 29 янв 2019
    Последнее редактирование: 29 янв 2019
  4. malexoid

    malexoid A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 сен 2015
    Сообщения:
    256
    Симпатии:
    60
    Смысл парсига подсказок в том, чтобы получить не максмимум каких-то подсказок, а в том чтобы получить максимум подсказок, которые гугл отдает всем пользователям, поэтом и нужно парсить именно https://www.google.ru/complete/search.
     
    Support нравится это.
  5. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    смысл парсинга подсказок в том, чтобы получить максимальное количество не бредотекстовых подсказок. мне без разницы что там гугл отдаёт всем пользователям, т.к. я уже в первом посте описал, какие какашки он там отдаёт. с тем же успехом можно брать имеющиеся у тебя кеи и добавлять к ним рандомные слова, получишь те же результаты.
     
  6. malexoid

    malexoid A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 сен 2015
    Сообщения:
    256
    Симпатии:
    60
    Нужно просто доработать парсер подсказок и опционально дать пользователю возможно не брать "искусственные" подсказки. Но в любом случае нужно брать https://www.google.com/complete/search
    Сделать это можно, так:
    например, есть такой ответ от https://www.google.com/complete/search
    Код:
    )]}'
    [[["тест\u003cb\u003e на iq\u003c\/b\u003e",0,[131]],["тест\u003cb\u003eо для пиццы\u003c\/b\u003e",0],["тест\u003cb\u003eо на вареники\u003c\/b\u003e",0],["тест\u003cb\u003eо на пельмени\u003c\/b\u003e",0],["тест\u003cb\u003eо на блины\u003c\/b\u003e",0],["тест\u003cb\u003eы\u003c\/b\u003e",0],["тест",0],["тест\u003cb\u003eо на чебуреки\u003c\/b\u003e",0],["тест\u003cb\u003eо на пирожки\u003c\/b\u003e",0],["тест\u003cb\u003eостерон\u003c\/b\u003e",0]],{"i":"slot real money x","q":""}]
    Все подсказки у которых второе значение после текста >0 - искусственные, а все у которых 0 - человеческие.
    В моём примере, все подсказки человеческие так как содержат 0, а вашем примере:
    Код:
    )]}'
    [[["slot real money xbox one",33,[160],{"zh":"x\u003cb\u003ebox\u0026nbsp;one\u003c\/b\u003e"}],["slot real money xbox",33,[160],{"zh":"x\u003cb\u003ebox\u003c\/b\u003e"}]],{"ap":"slot real money ","i":"slot real money x","q":""}]
    все подсказки искусственные, так как второе значение 33 >0

    Я этот парсер давно для себя переписал на JS и у меня всё ок
     
    Metroid, qazwsxedc, Support и ещё 1-му нравится это.
  7. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    я конечно за тебя очень рад, что ты переписал его на js ) но тут есть тоже свои нюансы, причём отличия довольно большие.
    как объяснить разницу в количестве результатов ? апарсер сейчас может спарсить только 10 результатов. а по тому линку, что я предложил, можно спарсить все доступные результаты, которые гугл может предоставить. так что тут можно ещё поспорить, стоит ли "в любом случае" брать тот линк, по которому сейчас парсит апарсер. я вообще не понимаю, как можно спорить на эту тему, если по предложенному мной линку парсится больше кеев и они все не искусственные, тогда как по имеющемуся в апарсере линку парсится только 10 кеев, и то, часто парсится всякая несуразная фигня. не вижу даже смысла оставлять старый источник парсинга, если предложенный мной вариант во всём лучше. я даже не могу представить себе задачу, при которой парсить меньше ключей было бы лучше, чем парсить больше ключей.

    я, как дорвейщик, понимаю, что время незасранных тематик в гугле прошло года 3 назад, и тот, кто имеет кучу нч кеев всегда будет получать в разы больше того, кто ориентируется только на сч и вч.

    я потому и предложил добавить мой вариант в качестве второго источника парсинга, чтобы был выбор - парсить меньше, но высокочастотку вперемешку со всякой ересью, либо парсить всё что есть и без всякой фигни.
     
    EceninPars нравится это.
  8. malexoid

    malexoid A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 сен 2015
    Сообщения:
    256
    Симпатии:
    60
    Хорошее решение, я за! )

    p.s. Источников данных можно найти много, например теже подсказки аплстора можно тянуть с разных мест, только вопрос - на**я, если всё равно придется делать тысячи, десятки тысяч запросов, чтобы перебором вытянуть все подсказки, там уже не важно 10 результатов, 20, 30. Главное это достоверность данных и хотя бы уверенность в том, что источник данных не обосрется через год, чтобы не нужно было лезть и переписывать парсер.
    1. Как вы верифицируете ваш источник данных сейчас, через полгода, через год? Кто будет проверять, что данные с второго урла совпадают с данными с первого урла?
    2. Откуда этот урл и где используется обычными пользователями?
     
  9. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    1. точно так же, как это реализовано сейчас - никак. нигде на ресурсах апарсера даже не написано, как обходить искусственные подсказки гугла, о какой проверке совпадения данных может идти речь ? кто с подсказками работает, тот и проверит.
    2. урл из известного забугорного парсера лонгтейл кейвордов keywordshitter
     
  10. EceninPars

    EceninPars A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 янв 2013
    Сообщения:
    67
    Симпатии:
    14
    Было бы классно что-то подобное от команды апарсера увидеть либо стандарнтый парсер переписать для парсинга "человеческих" подсказок
     
  11. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.545
    Симпатии:
    2.163
    Ранее Гугл отдавал подсказки в своих сервисах при запросе на домен suggestqueries.google.com. Он же использовался и в парсере. Но года 2-3 назад Гугл везде изменил домен на www.google.com, и в соответствии с этим были внесены изменения в парсер. Хотя на данный момент оба домена вроде как работают одинаково и на результат не влияют.

    Относительно результатов. На них в первую очередь влияет параметр client. Сейчас в парсере используется значение psy-ab, по аналогии с поисковиком. Т.е. парсер собирает те же подсказки, что видит пользователь в поисковике.
    В 1-м посте речь идет о client=chrome. По всей видимости это аналог client=chrome-omni, который используется при получении подсказок в адресной строке браузера Chrome. По крайней мере различий не было замечено. Выдача в данном случае действительно отличается от psy-ab, как по содержимому, так и по количеству.

    Исходя из вышеописанного, можно добавить в SE::Google::Suggest SE::Google::Suggest выбор значения для параметра client.

    Относительно "искусственных"/"человеческих" подсказок. Можно также добавить еще одну переменную в массив результатов. И при client=psy-ab заносить туда значение 1/0 по совету из 6-го сообщения. Но тогда остается открытым вопрос, что писать в эту переменную при client=chrome.
    Код:
    [
      "пого",
      [
        "погода",
        "погода чикаго",
        "погода в бруклине",
        "погода в москве",
        "погода филадельфия",
        "погода в бостоне",
        "погода в миннеаполисе",
        "погода нью йорк",
        "погода киев",
        "погода москва",
        "погода в майами",
        "погода в лос анджелесе",
        "погода вашингтон",
        "погода майами",
        "погода на завтра",
        "погода в ташкенте",
        "погода в сакраменто",
        "погода в орландо",
        "погода минск",
        "погода львів"
      ],
      [
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
      ],
      [],
      {
        "google:clientdata": {
          "bpc": false,
          "tlw": false
        },
        "google:suggestrelevance": [
          1250,
          601,
          600,
          566,
          565,
          564,
          563,
          562,
          561,
          560,
          559,
          558,
          557,
          556,
          555,
          554,
          553,
          552,
          551,
          550
        ],
        "google:suggesttype": [
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY",
          "QUERY"
        ],
        "google:verbatimrelevance": 851
      }
    ]
    Собственно варианта скорее всего 2: либо значения из google:suggestrelevance, либо из google:suggesttype. Но в google:suggesttype ничего другого, кроме QUERY не было замечено, поэтому возможно смысла выводить данные из этого массива нет.
    Какие значения больше нужны и замечал ли кто-то что-то другое в google:suggesttype?
     
    Metroid и qazwsxedc нравится это.
  12. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    да, действительно, на выдачу влияет именно клиент, спасибо.
    по поводу выдачи значений в переменную при client=chrome. а зачем они там вообще нужны, если выдача там не искусственная и отделять "людей от коней" не нужно ? просто сделать переменную пустой да и всё.
     
  13. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.545
    Симпатии:
    2.163
    Вот как раз, чтобы не пустовала, то можно что-то более-менее полезное в нее писать. Например, ту же релевантность (google:suggestrelevance), по которой, кстати, можно определять насколько подсказка релевантна запросу.
     
  14. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    ну можно конечно и релевантность, но в условиях сбора большого количества подсказок будет неясно, какому именно запросу она будет релевантна, если она встретится у нескольких запросов ) это если обучать какую-нибудь свою нейросеть на основе алгоритмов релевантности подсказок самого гугла, тогда да, пригодится ))
     
  15. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    был неправ. сегодня заметил, что кроме QUERY в suggesttype может прилететь NAVIGATION, в случае если в качестве подсказки будет урл на какой-то сайт, так что можно действительно туда писать QUERY или не QUERY, чтобы отсеивать подсказки от всякой фигни. вот json-пример ответа вместе с запросом.
    http://suggestqueries.google.com/complete/search?client=chrome&hl=en&gl=us&callback=?&q=buy essay online


    array (
    0 => 'buy essay online',
    1 =>
    array (
    0 => 'buyessayonline.org reviews',
    1 => 'http://buyessayonline.org',
    2 => 'buy essay online login',
    3 => 'buy essay online reddit',
    4 => 'buy essay online reviews',
    5 => 'buy essay online australia',
    6 => 'buy essay online promo code',
    7 => 'buy essay online safe',
    8 => 'buy tok essay online',
    9 => 'buy extended essay online',
    10 => 'buy argumentative essay online',
    11 => 'buy an essay online now',
    12 => 'buy essay writing online',
    13 => 'buy custom essay online',
    14 => 'buy admission essay online',
    ),
    2 =>
    array (
    0 => '',
    1 => '',
    2 => '',
    3 => '',
    4 => '',
    5 => '',
    6 => '',
    7 => '',
    8 => '',
    9 => '',
    10 => '',
    11 => '',
    12 => '',
    13 => '',
    14 => '',
    ),
    3 =>
    array (
    ),
    4 =>
    array (
    'google:clientdata' =>
    array (
    'bpc' => false,
    'tlw' => false,
    ),
    'google:suggestrelevance' =>
    array (
    0 => 602,
    1 => 601,
    2 => 600,
    3 => 561,
    4 => 560,
    5 => 559,
    6 => 558,
    7 => 557,
    8 => 556,
    9 => 555,
    10 => 554,
    11 => 553,
    12 => 552,
    13 => 551,
    14 => 550,
    ),
    'google:suggesttype' =>
    array (
    0 => 'QUERY',
    1 => 'NAVIGATION',
    2 => 'QUERY',
    3 => 'QUERY',
    4 => 'QUERY',
    5 => 'QUERY',
    6 => 'QUERY',
    7 => 'QUERY',
    8 => 'QUERY',
    9 => 'QUERY',
    10 => 'QUERY',
    11 => 'QUERY',
    12 => 'QUERY',
    13 => 'QUERY',
    14 => 'QUERY',
    ),
    'google:verbatimrelevance' => 1300,
    ),
    )
     
  16. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.545
    Симпатии:
    2.163
    Начиная с 1.2.404 в SE::Google::Suggest SE::Google::Suggest произошли следующие изменения:
    • добавлена возможность выбирать источник подсказок: параметр Client, по-умолчанию имеет значение Chrome omnibox
    • в массив результатов $results добавлена переменная $type, в которой содержится информация о типе подсказки: 0 - человеческая, 1 - искусственная
    • добавлен параметр Follow suggests, который позволяет выбрать, какие подсказки подставлять в запросы при парсинге в глубину
     
    DeLaKroiX и relay нравится это.
  17. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    отличная новость, благодарю ) а насчёт предыдущего моего сообщения что-то решили ? про QUERY и NAVIGATION которое.
     
  18. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.545
    Симпатии:
    2.163
    На момент появления сообщения уже были внесены изменения в парсер, поэтому пока что будет так.
    Тем более, для client=psy-ab нету в ответе аналога suggesttype.
    Судя из переписки выше, NAVIGATION - это ссылки, остальное всегда QUERY. Вы можете просто фильтровать получаемые подсказки, к примеру такой регуляркой:
    Код:
    ^https?://.+
     

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