繁体   English   中英

使用JSoup从HipHopEarly网站获取艺术家+曲目列表时遇到问题

[英]Having trouble using JSoup to obtain list of artists + tracks from HipHopEarly website

我开始对我的这个小项目感到沮丧。 奇怪的是我让程序只运行了一点。 我回来添加一些更多的程序,它不再抓住任何东西。 我假设网站改变了一点?

如果我犯了一个愚蠢的错误,我会提前道歉,因为我还是编程新手。

import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class scraper {
    public static void main(String[] args) {
        String url = "http://www.hiphopearly.com/tracks";
        Document doc = Jsoup.connect(url).get();
        Elements tracks = doc.select("#left-column div.tracklisting div.tracks div.track");
        for (Element track : tracks) {
            System.out.println(track.text());
        }
    }
}

当我运行该程序时,什么也不返回。 我相当肯定问题出在其中:

doc.select("#left-column div.tracklisting div.tracks div.track");

如何确定正确的CSS路径来捕获艺术家并跟踪标题? 我尝试复制并粘贴由Chrome浏览器自动提供的CSS路径,但是这样做不走运。

更改您的代码,如下所示:

String url = "http://www.hiphopearly.com/tracks";
Document doc = Jsoup.connect(url)
    .userAgent("Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0")
    .get();

Elements tracks = doc.select("#left-column div.track-listing div.tracks div.track");
for (Element track : tracks) {
    System.out.println(track.text());
}

这种情况经常发生-网站根据客户useragent生成不同的内容。 Pshemo几乎是正确的-如果您也可以在浏览器中获得JavaScript模板(例如AngularJS),则可能是他提到的情况(您可以通过显示网站的来源而不是显示显示结果的Firebug来检查它)。

第二件事是,跟踪列表类已更改为“跟踪列表”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM