【发布时间】:2025-12-12 00:25:02
【问题描述】:
我正在使用 Jsoup 库从该站点提取数据: Tom's hardware benchmarks
我使用此代码连接到站点并提取数据:
protected Void doInBackground(Object[] params) {
doc = Jsoup.connect(url).maxBodySize(Integer.MAX_VALUE).header("Accept-Encoding", "gzip").userAgent("Dalvik").method(Connection.Method.GET).timeout(Integer.MAX_VALUE).get();
try {
if (doc != null) {
css_text = doc.select("div[class=clLeft] label[for]");
for (int i = 0; i < css_text.size(); i++)
elem1[i] = css_text.eq(i).text();
css_text = doc.select("ul[style=margin-left:0px;] span");
css_score = doc.select("div[class=clRight clearfix]");
for (int j = 0; j < css_text.size(); j++) {
elem2[j] = css_text.eq(j).text();
score[j] = css_score.eq(j).text();
processori_score_arraylist.add(elem1[j] + "\n" + elem2[j] + " " + score[j]);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
processori_score_listview.setAdapter(adapter);
}
}
}
我读到有 1MB 的默认限制,这可能会截断网页。相反,这个网页看起来不是 1MB,所以我首先使用我的值,但并不总是有效。对于我不理解的问题,当我处于调试模式并将变量 doc 视为 Document 时,网页有时会一直下载,有时则不会。我不明白为什么。 然后我尝试将 maxBodySize 的值更改为 0,然后更改为 Integer.MAX_VALUE 以及 timeout 值读取其他帖子和互联网搜索,但它不能解决问题。 任何人都可以建议我问题的原因或解决方案吗? 我希望这很清楚问题是什么,如果不是,我可以提出疑问。
我发现的这个问题的其他帖子:
这里的 HTML 页面是如何被截断的:
<!doctype html>
<html>
<head>
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
<meta http-equiv="cache-control" content="max-age=0">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="refresh" content="10; url=/distil_r_captcha.html?Ref=/charts/cpu-charts-2015/-01-CinebenchR15,Marque_fbrandx14,3693.html&distil_RID=1CB642F0-76B5-11E5-9B22-93799C16BE3F&distil_TID=20151019225954">
<script type="text/javascript">
(function(window){
try {
if (typeof sessionStorage !== 'undefined'){
sessionStorage.setItem('distil_referrer', document.referrer);
}
} catch (e){}
})(window);
</script>
<script type="text/javascript" src="/destilar-fbxcdbtcwcebrsxtw.js" defer></script>
<style type="text/css">#d__fFH{position:absolute;top:-5000px;left:-5000px}#d__fF{font-family:serif;font-size:200px;visibility:hidden}#ssxfwzexyqctzdfy{display:none!important}</style>
</head>
<body>
<div id="distil_ident_block">
</div>
</body>
</html>
【问题讨论】:
标签: java android dom android-studio jsoup