Git Product home page Git Product logo

yandex-parser's Introduction

Yandex Parser

Парсер выдачи Яндекса посредством XML, который позволяет получить метатеги сайтов (title, description, keywords) по ссылкам из выдачи. Создавался для личных целей - анализа конкурентов и автоматической генерации мета тегов.

Как настроить?

Вы должны быть зарегистрированы в Яндексе.

  1. Переходим по ссылке https://xml.yandex.ru/settings/
  2. Указываем в настройках свой IP
  3. Из ссылки вида https://yandex.ru/search/xml?user= сохраняем два параметра user и key
  4. Копируем репозиторий себе на ПК и открываем проект в IntelliJ IDEA или любой другой IDE на ваш выбор
  5. Устанавливаем зависимости в gradle
  6. Пользуемся

Пример использования

В файле Program.kt в функции main указываем 2 параметра, наши сохраненные user и key. Затем создаем переменную, в которой будут хранится наши ссылки из выдачи. Указываем текстоый запрос и номер страницы (начинается с нуля).

Пример:

val sites = GetMetaData().getLinks(user, key, "как скачать windows 10", 0)

Объявляем переменную, типа StringBulider или просто строковую

val sb = StringBuilder()

Затем проходимся по полученному массиву, получаем мета-теги и записываем их в файл

sites.forEach {
       val title = GetMetaData().getTitle(it)
       val description = GetMetaData().getDescription(it)
       val keywords = GetMetaData().getKeywords(it)
     
       sb.append(it+"\n")
       sb.append(title+"\n")
       sb.append(description+"\n")
       sb.append(keywords)
       sb.append("\n\n")
}
FileDataHelper().writeContent("D:/links.txt",sb.toString())

Если Вам не важна последовательность выполнения, то можно существенно ускорить процесс, вызвав метод parallelStream() перед forEach

sites.parallelstream().forEach {
       val title = GetMetaData().getTitle(it)
       val description = GetMetaData().getDescription(it)
       val keywords = GetMetaData().getKeywords(it)
     
       sb.append(it+"\n")
       sb.append(title+"\n")
       sb.append(description+"\n")
       sb.append(keywords)
       sb.append("\n\n")
}
FileDataHelper().writeContent("D:/links.txt",sb.toString())

Используемые Классы

Класс GetMetaData методы

  • getLinks(user: String, key: String, query: String, page: Int) принимает 4 параметра: имя пользователя Яндекс, ключ, запрос, и номер страницы и возвращает массив ссылок из выдачи (кроме ссылок на объявления Я.Директ)
  • getTitle(url: String) - принимает ссылку на сайт и возвращает его тег <Title>
  • getDescription(url: String) - принимает ссылку на сайт и возвращает его тег
  • getKeywords(url: String) - принимает ссылку на сайт и возвращает еготег

Класс FileDataHelper методы

  • getContent(source: String) - принимает путь к файлу и считывает данные из него
  • writeContent(source: String, content: String) - принимает путь к файлу и записывает в него содержимое (при последующих вызовах добавляет содержимое в файл)

Класс RequestHelper методы

  • getData(url: String) - принимает ссылку и скачивает содержимое в виде текста

yandex-parser's People

Contributors

klesarev avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.