Получить URL из атрибута onclick с JSOUP в Java - PullRequest
0 голосов
/ 09 мая 2019

Я новичок в Jsoup и пытаюсь получить URL-адрес от атрибута onclick, который вызывает функцию с именем ga и которая имеет пять параметров, так что это выглядит как ga('send', 'event', 'tunein', 'playjp', 'http://link that i want to get');, я хочу получить httpurl.

Я пробовал с опцией attr("onclick"), но она вообще не работает, знаете, есть ли шанс как-нибудь это получить.

1 Ответ

1 голос
/ 09 мая 2019

Вы уверены, что находитесь на правом узле?

node.attr ("onclick") должен работать

Можете ли вы опубликовать ссылку на страницу, которую вы пытаетесь удалить, икак добраться до узла?

public void jsoupParse() throws IOException {
        Document doc = Jsoup.connect("https://www.internet-radio.com/station/dougeasyhits/").get();
        Element image = doc.select("div.jp-controls").select("i").get(0); //get the first image (play button)
        String onclick = image.attr("onclick");
        System.out.print(onclick);

    }

output:

ga('send', 'event', 'tunein', 'playjp', 'http://airspectrum.cdnstream1.com:8114/1648_128.m3u');

Теперь все, что вам нужно сделать, это манипулировать строкой с помощью метода split для извлечения URL:

Document doc = Jsoup.connect("https://www.internet-radio.com/station/dougeasyhits/").get();
    Element image = doc.select("div.jp-controls").select("i").get(0); //get the first image (play button)
    String onclick = image.attr("onclick");
    String[] parts = onclick.split("'"); //i split the string in an array of strings using [ ' ] as separator
    String url = parts[9]; //the url is contained in the 10th element of the array
    System.out.println(onclick);
    System.out.print(url);

output

    ga('send', 'event', 'tunein', 'playjp', 'http://airspectrum.cdnstream1.com:8114/1648_128.m3u');
http://airspectrum.cdnstream1.com:8114/1648_128.m3u

Вот как разделился атрибут onclick на случай, если вы запутались:

parts[0] : "ga("
parts[1] : "send"
parts[2] : ", "
parts[3] : "event"
parts[4] : ", "
parts[5] : "tunein"
parts[6] : ", "
parts[7] : "playjp"
parts[8] : ", "
parts[9] : "http://airspectrum.cdnstream1.com:8114/1648_128.m3u"
parts[10] : ");"
...