代码之家  ›  专栏  ›  技术社区  ›  Turgut Tak

JSoup无法解析网站

  •  1
  • Turgut Tak  · 技术社区  · 7 年前

    import java.io.IOException;
    import javax.swing.JOptionPane;
    import org.jsoup.Jsoup;
    import org.jsoup.Connection.Response;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    
    public class Veri {
    
        public static void main(String[] args) {
    
            Veri();
    
        }
    
        public static void Veri() {
    
            try {
    
                String url = "https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/default.aspx";
    
                Response res = Jsoup.connect(url).timeout(6000).execute();
    
                Document doc = res.parse();
                Element ele = doc.select("table[class=dataTable hover nowrap excelexport data-tables no-footer]").first();
    
                for (int i = 0; i < 100; i++) {
    
                    System.out.println(ele.select("td").iterator().next().text());
    
                }
    
            } catch (IOException c) {
    
                JOptionPane.showMessageDialog(null, "Veriler Alınırken Bir Harta Oluştu!");
                c.printStackTrace();
            }
    
        }
    
    }
    

    我得到了以下错误

    线程“main”java中出现异常。lang.NullPointerException位于 验证。Veri(Veri.java:37)在Veri。main(java版本:20)

    1 回复  |  直到 7 年前
        1
  •  1
  •   Gerard Rozsavolgyi    7 年前

    自从您上次使用程序以来,页面可能已经发生了一些变化。 试试这个:

    import org.jsoup.Jsoup;
    import org.jsoup.Connection.Response;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class Veri {
    
        public static void main(String[] args) {
    
            Veri();
    
        }
    
        public static void Veri() {
    
            try {
    
                String url = "https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/default.aspx";
    
                Response res = Jsoup.connect(url).timeout(6000).execute();
    
                Document doc = res.parse();
                Element ele = doc.select("table[class=dataTable hover nowrap excelexport]").first();
                Elements lines = ele.select("tr");
                for (Element elt : lines) {
                    System.out.println(elt.text());
                    System.out.println("------------------------");
                }
    
            } catch (IOException c) {
    
                JOptionPane.showMessageDialog(null, "Veriler Alınırken Bir Harta Oluştu!");
                c.printStackTrace();
            }
    
        }
    
    }
    

    我认为你可以通过这种方式获得所需的所有信息。