Java Jsoup.connect().get()只接受Android上html文件的一部分
所以,我尝试解析维基百科,我的代码在计算机上运行良好。 总之,我所更改的-.connect().get在AsyncTask中,但我只得到html文件的一部分(没有“正文”,只有“标题”中第二个“脚本”的一半),我不明白为什么。 这是我的Android代码示例Java Jsoup.connect().get()只接受Android上html文件的一部分,java,android,parsing,jsoup,Java,Android,Parsing,Jsoup,所以,我尝试解析维基百科,我的代码在计算机上运行良好。 总之,我所更改的-.connect().get在AsyncTask中,但我只得到html文件的一部分(没有“正文”,只有“标题”中第二个“脚本”的一半),我不明白为什么。 这是我的Android代码示例 protected String doInBackground(String... params) { try { Document doc = Jsoup.connect(params[0]).ge
protected String doInBackground(String... params) {
try {
Document doc = Jsoup.connect(params[0]).get();
return doc.toString();
} catch (IOException e) {
//...
e.printStackTrace();
}
return null;
}
这很简单
String url = "https://en.wikipedia.org/wiki/Protectorate";
Document doc = null;
try {
doc = Jsoup.connect(url).get();
} catch (IOException e) {
//...
e.printStackTrace();
}
我查过了,参数[0]是,这里没有错。
如果您需要一些额外的信息,我当然会提供给您。Logcat在这里愚弄了我们,因为它缩短了消息(我假设您使用Logcat检查了字符串?请参阅) 如果将结果字符串拆分为块,您将看到整个页面已加载。尝试向AsyncTask类添加类似于
logAll
函数的内容,以查看完整输出:
private class DownloadTask extends AsyncTask<String, Integer, String> {
Document doc = null;
protected String doInBackground(String... params) {
try {
doc = Jsoup.connect(params[0]).get();
return doc.toString();
} catch (Exception e) {
e.printStackTrace();
}
return doc.toString();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
logAll("async",doc.toString());
}
void logAll(String TAG, String longString) {
int splitSize = 300;
if (longString.length() > splitSize) {
int index = 0;
while (index < longString.length()-splitSize) {
Log.e(TAG, longString.substring(index, index + splitSize));
index += splitSize;
}
Log.e(TAG, longString.substring(index, longString.length()));
} else {
Log.e(TAG, longString.toString());
}
}
}
私有类下载任务扩展了异步任务{
单据单据=空;
受保护的字符串doInBackground(字符串…参数){
试一试{
doc=Jsoup.connect(参数[0]).get();
返回doc.toString();
}捕获(例外e){
e、 printStackTrace();
}
返回doc.toString();
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
logAll(“异步”,doc.toString());
}
void logAll(字符串标记、字符串长字符串){
int splitSize=300;
if(longString.length()>splitSize){
int指数=0;
while(索引