JS::Google::FromSnippets

Парсер JS::Google::FromSnippets 1.0.0

Доступно владельцам лицензии
  • Автор темы Автор темы Support
  • Дата начала Дата начала

Support

Administrator
Команда форума
A-Parser Enterprise
Пользователь Support разместил новый ресурс:

JS::Google::FromSnippets - Получение подсказок по запросу, затем сбор первой ссылки с Google по каждой подсказке

  • Данный парсер - это пример работы в JS-парсерах со встроенными парсерами
  • В конструкторе задаются названия пресетов для парсеров
    se-google-suggest.png
    SE::Google::Suggest и
    se-google.png
    SE::Google, при этом выбор будет доступен в интерфейсе, в настройках парсера JS::Google::FromSnippets...

Узнать больше об этом ресурсе...
 
eyiyr.png

Результат:
Код:
buy buy baby: https://www.buybuybaby.com/ (<b>Buy Buy Baby</b>)
buy here pay here: https://en.wikipedia.org/wiki/Buy_Here_Pay_Here (<b>Buy Here Pay Here</b> - Wikipedia)
buy: http://www.rakuten.com/ (Rakuten.com - Computers, Electronics, Apparel, Home, Sporting ...)
buy me a boat: http://www.azlyrics.com/lyrics/chrisjanson/buymeaboat.html (CHRIS JANSON LYRICS - <b>Buy Me A Boat</b> - A-Z Lyrics)
buy buy baby coupon: https://www.retailmenot.com/view/buybuybaby.com (20% Off <b>buybuy BABY Coupon</b>, Free Shipping 2016 - RetailMeNot)
buying a house: http://www.wikihow.com/Buy-a-House (How to <b>Buy a House</b>: 9 Steps (with Pictures) - wikiHow)
buy used cars: http://www.autotrader.com/car-topics/used-car-buying.xhtml (<b>Buying</b> a <b>Used Car</b> - <b>Used Car</b> Reviews &amp; News, Compare Used ...)
buy kratom: http://www.buykratom.us/ (<b>Buy Kratom</b> | Purveyors of Premium Kratom | Get Kratom by Kratora™)
buy instagram followers: https://www.instabuyagram.com/instagram-followers/ (<b>Buy Followers</b> For <b>Instagram</b> Today at $1.88 | Fast &amp; Safe ...)
buy sell trade: https://www.buysaleandtrade.com/ (Classified Ads Online that <b>Buy Sell Trade</b> | BuySaleandTrade.com)

Код парсера
Код:
class Parser {
    constructor() {
        this.defaultConf = {
            results: {
                arrays: {
                    serp: ['Top1 list', [ ['suggest', 'Suggest'], [ 'link', 'Link' ], [ 'anchor', 'Anchor' ] ] ],
                }
            },
            results_format: "$serp.format('$suggest: $link ($anchor)\\n')",
            SE_Google_Suggest_preset: 'default',
            SE_Google_preset: 'default',
        };

        this.editableConf = [
            ['SE_Google_Suggest_preset', ['combobox', 'SE::Google::Suggest preset']],
            ['SE_Google_preset', ['combobox', 'SE::Google preset']],
        ];
    }

    *parse(set, results) {
        let result = yield this.parser.request('SE::Google::Suggest', this.conf.SE_Google_Suggest_preset, set.query);

        if(result.info.success) {
            let suggests = result.results;
            this.logger.put('Total grabbed ' + suggests.length + ' suggests');

            for(const suggest of suggests) {
                result = yield this.parser.request('SE::Google', this.conf.SE_Google_preset, {pagecount: 1, linksperpage: 10}, suggest);
                results.serp.push(suggest, result.serp[0], result.serp[1]);
            }
        }

        results.success = result.info.success;

        return results;
    }
}
  • В конструкторе задаются названия пресетов для парсеров SE::Google::Suggest SE::Google::Suggest и SE::Google SE::Google, при этом выбор будет доступен в интерфейсе, в настройках парсера JS::Google::FromSnippets
  • В функции парсинга у нас нет вызова HTTP запросов, вместо этого мы напрямую обращаемся к существующим парсерам:
    • Получаем список подсказок по запросу
    • Затем по каждой подсказке в цикле получаем результаты первой страницы выдачи Google, сохраняем в наш результат подсказку и только первую ссылку с анкором
 
предлагаю добавить проверку дабы не добавлять пустые ответы
Код:
for (const suggest of suggests) {
  result = yield this.parser.request('SE::Google', this.conf.SE_Google_preset, {pagecount: 1, linksperpage: 10}, suggest)
  if (result.serp[0] === 'none' || result.serp[1] === 'none') {
    break
  }
  results.serp.push(suggest, result.serp[0], result.serp[1])
}
 
Назад
Верх