我想解析html页面并提取数据但是当我尝试连接Jsoup时会抛出错误。 当我使用httpclient连接时[String s = EntityUtils.toString(response.getEntity()," UTF-8");] 我能够存储到字符串中的html页面内容没有问题。但是对于Jsoup,我无法做到。我做错了吗?
package com.example.flashcardsdemo;
import java.io.InputStream;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.w3c.dom.Element;
//import com.example.flashcards.MainActivity.Gethtml;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=this;
Gethtml Ght = new Gethtml();
Ght.execute();
}
public class Gethtml extends AsyncTask {
ProgressDialog dialog;
String UrlLink = "http://en.wikipedia.org/";
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
dialog = new ProgressDialog(context);
dialog.setTitle("Loading");
dialog.setMessage("Html....");
dialog.show();
}
@Override
protected Object doInBackground(Object... params) {
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(UrlLink);
HttpResponse response = client.execute(request);
StatusLine line = response.getStatusLine();
int statuscode = line.getStatusCode();
if (statuscode != 200) {
return null;
}
Document doc = Jsoup.connect(UrlLink).get();
}
catch (Exception e) {
Log.v("Error", e.toString());
}
return null;
}
@Override
protected void onPostExecute(Object result) {
dialog.dismiss();
}
}
}
LogCat图片: [1]:http://i.stack.imgur.com/Q6bDv.png [2]:http://i.stack.imgur.com/TBxUB.png
答案 0 :(得分:0)
确保您的JSoup jar文件与其余代码一起导出。请执行以下操作
右键单击Project
Java构建路径
订单和出口
选中Jsoup jar条目旁边的框。
然后将应用重新加载到您的模拟器或设备上。
您还应该清理项目
右键单击Project-> 点击Android工具 - > 单击修复项目属性 然后单击项目 清洁
如果仍然无效,请执行以下操作:
删除旧的导出并在项目中创建一个libs /目录(作为src /,res /等的对等),如果你还没有。然后,将JSoup JAR放在libs /目录中。这将把它添加到您的构建路径并将其内容包含在您的APK文件中。