簡體   English   中英

獲取要在jSoup中使用的String的某些表引用

[英]Getting certain Table reference of String to use in jSoup

我想使用jSoup從此網頁獲取時間...我需要的時間是頂部附近紅色欄中的“ 11:19” ... http://www.gbgb.org.uk/resultsRace .aspx?raceID = 293047-2

有人知道我將如何使用jSoup從網頁上獲取此信息嗎? 如果有人對將來如何在表中定位元素有任何建議,請告訴我。

另外,我需要從此表中獲取“查看競賽”鏈接地址: http : //www.gbgb.org.uk/raceCard.aspx?dogName=Ballymac%20Monleek ,但是當我當前獲取該元素時,它只會給出我是“觀看比賽”,而不是實際的鏈接...

 //getHistory
    String dogPage = "http://www.gbgb.org.uk/raceCard.aspx?dogName=" + selectedDog;
    Document doc1 = Jsoup.connect(dogPage).get();

    Element tblHeader = doc1.select("table.MasterTable_Web20 tbody").first();
    List<DogDetail> data = new ArrayList<>();
    for (Element element1 : tblHeader.children()){

        String webURL = (element1.select("td:eq(14)").text());
        System.out.println(webURL);
    }

謝謝,

這是一種非常快速的方法(可能不是最好的方法,但是它起作用了,我剛剛對其進行了測試)。

使用chrome,很容易為網頁中的每個元素獲取XPath表達式(右鍵單擊文本,“檢查”,復制XPath表達式)。 在這種情況下,它是:

 //*[@id="content"]/table[2]/tbody/tr[2]/td/table/tbody/tr/td[2]/table[1]/tbody/tr/td[4]

現在,如果頁面結構從不改變,那就足夠了。 使用Xsoup擴展將XPath表達式與Jsoup結合使用:

        Document document = Jsoup.connect("http://www.gbgb.org.uk/resultsRace.aspx?raceID=293047-2").get(); 
        XElements element = Xsoup.compile("//*[@id=\"content\"]/table[2]/tbody/tr[2]/td/table/tbody/tr/td[2]/table[1]/tbody/tr/td[4]").evaluate(document);

        // Get text content
        String textContent = element.getElements().get(0).childNode(0).toString();

        // Extract time portion
        String time = textContent.trim().replaceAll("\\&nbsp\\;", " ").split("\\s+")[1];

        // Prints 11:19
        System.out.println(time);

當然,請注意,這對頁面結構將來可能發生的更改非常敏感。

對於問題的第二部分,您將獲得此套xpath

*[@id="ContentPlaceHolder1_RadGrid1_ctl00__0"]/td[15]/a
*[@id="ContentPlaceHolder1_RadGrid1_ctl00__1"]/td[15]/a
*[@id="ContentPlaceHolder1_RadGrid1_ctl00__2"]/td[15]/a
...
*[@id="ContentPlaceHolder1_RadGrid1_ctl00__15"]/td[15]/a

一個簡單的迭代就可以輕松地將它們全部獲取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM