Jsoup - 如何抓取当前播放歌曲的广播网站?

时间:2018-04-06 00:54:07

标签: java html web-scraping jsoup

我正在制作一个程序,使用jsoup为当前播放的歌曲和艺术家刮取某个广播网站。我已经按照本教程:https://www.youtube.com/watch?v=C1b74N1rgQQ但无法从网站上获取正确的数据。

我想访问此广播网站:https://indie88.com/并显示当前正在播放的歌曲(和艺术家)。

到目前为止,这是我的代码:

#!/usr/bin/env python

import shodan
import sys

SHODAN_API_KEY = "key"
api = shodan.Shodan(SHODAN_API_KEY)

try:
# Search Shodan
    results = api.search('abc1234')
# Show the results
    print 'Results found: %s' % results['total']
    for result in results['matches']:
        print 'IP: %s' % result['ip_str']
        print ''
except shodan.APIError, e:
    print 'Error: %s' % e

通过运行此代码,我得到"搜索"。我认为它与.get(2)或" span"有关。在HTML中标记,但我不确定。这是我第一次使用jsoup,任何建议都会对我如何显示当前正在播放的歌曲(位于页面顶部)有所帮助。

另外 - 我怎么知道何时使用getElementsByTag和getElementsByClass等?有没有办法指定哪个" span"标签使用?似乎没有从正确的信息中获取信息。

1 个答案:

答案 0 :(得分:1)

当您使用浏览器转到https://indie88.com/时,该网站会加载更多文件。您要查找的信息显示在https://indie88.com/wp-content/themes/indie88/inc/streamon.php,因此要获取该信息,请尝试以下操作:

final String url = "https://indie88.com/wp-content/themes/indie88/inc/streamon.php"; 
Document doc = Jsoup.connect(url).get();
System.out.println(doc.body().text());

示例输出是 -

  

{"艺术家":"韦恩喷泉","标题":" Stacey'",&#34末端":" 1522993371.161780"}

现在您可以使用一些JSON库或正则表达式来提取艺术家和标题。