2017-07-16 3 views
0

ich entwickle eine android app, die sendungen von israel post website verfolgen sollte. Da sie keine API haben, versuche ich die Website mit bestimmten Links zu manipulieren und den HTML-Code mit jsoup zu analysieren, aber es funktioniert nicht, weil die Tracking-Informationen dynamisch geladen werden. Ich habe versucht, jsoup mit Selen zu kombinieren, aber ich bin nicht sicher, dass es in Android-Umgebung implementiert werden kann, da ich Build-Fehler bekomme, hat jemand irgendeine Technik oder Ansatz für diese Aufgabe? Ich würde es sehr schätzen. trying to capture the info in blue boxandroid web scrapping dynamischer inhalt jsoup

enter image description here

Antwort

1

Sie können Ihre Daten aus dieser URL erhalten: http://www.israelpost.co.il/itemtrace.nsf/trackandtraceNOHEJSON?openagent&lang=EN&itemcode=RR123445677IL

prüfen dieses Java-Code:

import com.google.gson.Gson; 
import com.google.gson.annotations.SerializedName; 
import org.jsoup.Connection; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

import java.io.IOException; 

public class IsraeliPost { 
    public static void main(String[] args) { 

     String URL = "http://www.israelpost.co.il/itemtrace.nsf/trackandtraceNOHEJSON?openagent&lang=EN&itemcode="; 
     String itemNumber = "RR123445677IL"; 

     try { 
      Connection.Response response = Jsoup.connect(URL + itemNumber) 
        .ignoreContentType(true) 
        .method(Connection.Method.GET) 
        .execute(); 

      String jsonResponse = response.body(); 
      ItemData itemData = new Gson().fromJson(jsonResponse, ItemData.class); 
      String itemCodeInfo = itemData.getItemcodeinfo(); 

      Document document = Jsoup.parse(itemCodeInfo); 

      Elements table = document.select("table").select("tbody"); 

      for (Element raw : table) { 
       Elements tds = raw.select("td"); 
       for (Element td : tds) { 
        System.out.println(td.text()); 

       } 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public class ItemData { 

     @SerializedName("itemcodeinfo") 
     private String mItemcodeinfo; 

     public String getItemcodeinfo() { 
      return mItemcodeinfo; 
     } 
    } 
} 

Ausgang:

Datum Post Unit Stadt Beschreibung 30/01/2015 Shikun Memshalti Nahariya Geliefert zu einem bevollmächtigten Vertreter des Adressaten 28/01/2015 Shikun Memshalti Nahariya Angekommen bei der Posteinheit für die Lieferung an Adressat 27/01/2015 Jaffo Tel Aviv Yaffo Empfangen für den Versand und wurde zur Verarbeitung weitergeleitet

+0

Funktioniert wie ein Charme Sie haben gerade meinen Tag gerettet Danke! –