Android JSoup get div#content won';我不工作
因此,我试图从网站中获取div标记“content”(可能是使用JSoup…),我尝试了以下代码:Android JSoup get div#content won';我不工作,android,html,multithreading,webview,jsoup,Android,Html,Multithreading,Webview,Jsoup,因此,我试图从网站中获取div标记“content”(可能是使用JSoup…),我尝试了以下代码: public class EcoActivity extends Activity { String content1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); System.out.println(con
public class EcoActivity extends Activity {
String content1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println(content1);
setContentView(R.layout.activity_eco);
WebView webview = (WebView)this.findViewById(R.id.WebView);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadDataWithBaseURL("", content1, "text/html", "UTF-8", "");
}
private void runThread() {
new Thread(new Runnable() {
Document doc;
public void run() {
File input = new File("/tmp/input.html");
try{
doc = Jsoup.parse(input, "UTF-8", "http://www.muckendorf-wipfing.at/25-0-Wirtschaft+und+Gastronomie.html");
}catch(Exception e){
e.printStackTrace();
}
Element contentElement = doc.select("div#content").first();
final String content2 = "<html>" + "<head></head>" + "<body>" + doc.getElementById("content").outerHtml() + "</body>" + "</html>";
final String content = "<html>" + "<head></head>" + "<body>" + /**contentElement.toString() + */"</body>" + "</html>";
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
content1 = content2;
System.out.println("Plsrdme " + content2);
}
});
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
公共类EcoActivity扩展活动{
字符串内容1;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
系统输出打印项次(content1);
setContentView(R.layout.activity_eco);
WebView WebView=(WebView)this.findviewbyd(R.id.WebView);
webview.getSettings().setJavaScriptEnabled(true);
loadDataWithBaseURL(“”,content1,“text/html”,“UTF-8”,”);
}
私有void runThread(){
新线程(newrunnable()){
文件文件;
公开募捐{
文件输入=新文件(“/tmp/input.html”);
试一试{
doc=Jsoup.parse(输入,“UTF-8”http://www.muckendorf-wipfing.at/25-0-Wirtschaft+und+Gastronomie.html);
}捕获(例外e){
e、 printStackTrace();
}
Element contentElement=doc.select(“div#content”).first();
最终字符串content2=“”+”+“”+doc.getElementById(“内容”).outerHtml()+“”+“”;
最后一个字符串content=“”+”+“+/**contentElement.toString()+*/”+”;
试一试{
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
content1=content2;
系统输出打印项次(“Plsrdme”+内容2);
}
});
睡眠(300);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}).start();
}
}
但这对我不起作用。我做错了什么,有人能帮我吗?我想问题是,它甚至无法将它打印到控制台上,或者至少我在那里找不到它。
谢谢
编辑1:我发现content1只包含值“null”。(在onCreate块中,System.out.println(content1);
我不知道为什么…也许你想这么做 改变
doc=Jsoup.parse(输入,“UTF-8”http://www.muckendorf-wipfing.at/25-0-Wirtschaft+und+Gastronomie.html”);
到
doc=Jsoup.connect(“http://www.muckendorf-wipfing.at/25-0-Wirtschaft+und+Gastronomie.html”).get();
您没有为content1分配任何值,您没有调用runThread()