[英]Jsoup HTML Parsing work on java but doesn't work on android studio
我正在使用Jsoup進行html解析項目,無法正確解析Title和Image,但是當我嘗試解析計時器(與本鏈接相關的這篇文章)時,我在android studio上失敗了,但使用的代碼可以通過@Shn_Android_Dev 此代碼 ,這是我的代碼。
public void EbayTimerTest() {
new Thread(new Runnable() {
@Override
public void run() {
Document doc;
try {
doc = Jsoup.connect(WEBSITE_URL).get();
String remaining = doc.select("#vi-cdown_timeLeft").first().text();
remainingMs = getUnixFromString(remaining);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
timer.setText(String.valueOf(remainingMs));
}
});
}
}).start();
}
}
我仍然得到的錯誤是
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.jsoup.nodes.Element.text()' on a null object reference
很確定
String remaining = doc.select("#vi-cdown_timeLeft").first().text();
無法在android studio上解析,但可以在Java Eclipse上使用。
ps Jsoup效果很好,如果我嘗試解析其他元素(例如Title和Image)。
發生異常的主要原因可能是每個IDE向服務器發送不同的userAgent
字符串,因此您將獲得兩個不同的HTML。
您可以通過以下兩種方式之一解決它:
doc
,並查看對所需信息的查詢。 將userAgent
字符串添加到get
請求中-
doc = Jsoup.connect(URL).userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101") .get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.