You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jsoup解析指定Express.pk链接失败,求可行解决方案

解决Jsoup解析express.pk页面失败的问题

我来帮你排查一下Jsoup解析失败的问题,结合你的代码来看,主要有几个常见的原因和对应的解决办法:

  • 修正错误的URL
    你的代码里URL末尾多了一个斜杠:"https://www.express.pk/world/archives/?page=1/",正确的URL应该是"https://www.express.pk/world/archives/?page=1"。这个多余的斜杠可能会导致服务器返回404错误,或者跳转到错误页面,直接引发解析失败。

  • 添加浏览器请求头,绕过反爬检测
    很多网站会检测请求的User-Agent字段,Jsoup默认的User-Agent是jsoup/{version},很容易被识别为爬虫而拒绝请求。你需要模拟真实浏览器的请求头,比如添加Chrome的User-Agent,同时补充Accept、Accept-Language等字段让请求更贴近正常浏览器行为。

  • 合理设置超时时间
    如果网络不稳定或者服务器响应较慢,默认的超时时间可能不够,导致请求超时失败。可以通过timeout()方法设置更长的超时时间,比如10秒。

修改后的完整MainActivity代码

public class MainActivity extends AppCompatActivity { 
    private TextView result; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        result = (TextView) findViewById(R.id.result); 

        new Thread(new Runnable() { 
            @Override 
            public void run () { 
                final StringBuilder builder = new StringBuilder(); 
                try { 
                    // 修正URL,去掉末尾多余的斜杠
                    String url = "https://www.express.pk/world/archives/?page=1";
                    Document doc = Jsoup.connect(url)
                            // 添加浏览器请求头,模拟Chrome浏览器
                            .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36")
                            .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8")
                            .header("Accept-Language", "en-US,en;q=0.5")
                            // 设置10秒超时时间
                            .timeout(10000)
                            .get(); 

                    String title = doc.title(); 
                    Elements links = doc.select("a[href]"); 
                    builder.append(title).append("\n"); 
                    for (Element link : links) { 
                        builder.append("\n").append(link.text()); 
                    } 
                } catch (IOException e) { 
                    builder.append("Error : ").append(e.getMessage()).append("\n");
                    // 打印完整异常栈,方便定位具体问题
                    e.printStackTrace();
                } 

                runOnUiThread(new Runnable() { 
                    @Override 
                    public void run () { 
                        result.setText(builder.toString()); 
                    } 
                }); 
            } 
        }).start(); 
    } 
}

额外调试建议

如果修改后仍然失败,你可以:

  1. 先在设备的浏览器中打开目标URL,确认网络可以正常访问该网站
  2. 通过e.printStackTrace()查看完整的异常信息,判断是连接超时、403禁止访问还是其他错误
  3. 如果网站需要JavaScript渲染内容(比如动态加载的页面),Jsoup无法处理这种情况,需要改用Selenium等支持JS渲染的工具

内容的提问来源于stack exchange,提问作者usama choudhry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:58:03