На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Пример парсинга сайта с помощью Java


Не так давно работал над одним интересным заказом. Если вкратце, то необходимо было написать mp3 плеер на java, который бы мог не только воспроизводить музыку, писать в плейлисты (что делают обычные плееры), но и сам искать (и качать) песни в интернете. В этой статье мы научимся парсить сайты с помощью Java.

Для начала на потребуется сторонняя библиотека – не будем же мы разбирать страницу с помощью регулярных выражений, верно? Я выбрал jsoup Java HTML Parser Нам нужен jar-ник – на время написания статьи последний был 1.11.3. Подключаем его к нашему проекту, а в основном файле подключаем уже пространства имен:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
В качестве подопытного кролика выбран сайт mp3party.net – там все просто, поиск идет с помощью get запросов, нет защиты – в общем, идеальный пациент. Создаем кнопку и в обработчик её помещаем следующий код:

	Button btnFind = new Button();
        btnFind.setText("Найти песню");
        btnFind.setOnAction(new EventHandler<ActionEvent>() {            
            @Override
            public void handle(ActionEvent event) {
                
  //получаем строку запроса
         String query = textBox.getText();
         name = "";
         
   lbFind.setText("Подождите, идет поиск....");           
//парсим страницу запроса       
           try {

                     doc = Jsoup.connect("http://mp3party.net/search?q="+query).get();
                } catch (IOException ex) {
                    Logger.getLogger(FindListen.class.getName()).log(Level.SEVERE, null, ex);
                }
        Elements newsHeadlines = doc.select(".song-item a");
int i = -1;
        for (Element headline : newsHeadlines) {
  i++;       
  if (i==0) {    
  sst = headline.absUrl("href");
         name = headline.ownText();
         
  }
           }
   
        if (name!="") {
lbFind.setText("Найдено: "+name);  
btnDounload.setVisible(true);
muss = "mp3/"+name+".mp3";        
        }
        else {
lbFind.setText("Ничего не найдено!");         
        }      
            }                 

        }); 
Обратите внимание, что помимо кнопки в окне должно быть как минимум два элемента: текстбокс, откуда берется то, что надо искать (название песни) и метка (lbFind), в которую мы выводим полученный результат.



По сути дела здесь мы просто выполняем get-запрос к сайту и в ответе на странице ищем то, что идет после .song-item a. Затем в цикле все перебираем и запоминаем первый результат. В итоге мы получаем два результата: адрес страницы с песней (sst) и её название. Теперь уже можно парсить саму страницу с музыкой и затем её качать. Но это уже в следующей статье.

Если вам что-то непонятно, требуется помощь по Java, то вы можете написать мне на почту up777up@yandex.ru – за разумную плату я вам с удовольствием помогу.




тегизаметки, java, парсинг, примеры кода





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Стек Java
Рисуем SVG самостоятельно


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.