簡體   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