如何使用Java从网站获取数据?

时间:2019-07-03 17:25:24

标签: java android web-scraping jsoup

嘿,我想从网站上获取数据。我已经尝试了很多,但还是不明白。

这是网站 https://fortnitetracker.com/profile/psn/Julianpjp

我想要胜利

我的代码

fn counter(reset: bool) -> i32 {
    static mut Count: i32 = 0;

    unsafe {
        if reset {
            Count = 0;
        }    
        Count += 1;
        return Count;
    }
}

println!("{}",counter(true));
println!("{}",counter(false));
println!("{}",counter(false));
//println!("{}", Count); // Illegal

这是我想要的值

class Mywindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(Mywindow, self).__init__(parent)

        self.setMinimumSize(QtCore.QSize(800,600))
        self.setWindowTitle('Customized style')
        self.mdiarea = QtWidgets.QMdiArea()
        self.setCentralWidget(self.mdiarea)
        self.mdiarea.setWindowTitle('Test')

        self.window = QtWidgets.QWidget()        
        self.mdiarea.addSubWindow(self.window)

if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    app.setStyle('Fusion')
    view = Mywindow()
    view.showMaximized()
    sys.exit(app.exec_())

这是较高的元素

public static void main(String[] args) throws Exception{
        final String url = "https://fortnitetracker.com/profile/psn/Julianpjp";
        final Document document = Jsoup.connect(url).get();

        for (Element row : document.select("div#profile")) {
            final String siege = row.select("trn_defstat_value").text();
            System.out.println(siege);

        }
    }

1 个答案:

答案 0 :(得分:1)

select()需要CSS选择器。您正在传递"trn_defstat_value"。这将选择元素命名 trn_defstat_value

<trn_defstat_value>...</trn_defstat_value>

您要选择具有给定 CSS类的元素。并且该类名为trn-defstat__value,而不是trn_defstat_value。因此,正确的选择器就是".trn-defstat__value"

请注意,您要遍历ID为“ profile”的所有div,但是根据n ID的定义,只能有一个。而且,您没有使用类trn-defstat__value遍历元素,但是有很多元素。