当前位置: 首页 > 知识库问答 >
问题:

在Android中使用Jsoup解析HTML时强制关闭

龚振濂
2023-03-14

我在Android系统中遇到了两天的问题..我无法从URL解析HTML页面..我尝试了很多方法,我得到了Jsoup作为简单的方法…这是我的剧本:

TextView tv = (TextView) findViewById(R.id.tvv);

    Document doc;
    try {
        doc = Jsoup.connect("http://google.com").get();
        String title = doc.title();
    } catch (IOException e) {
        e.printStackTrace();
    }

但是,当我运行这个脚本时,它变得很接近…我只是不知道有什么问题..我在这里看到了教程:http://jsoup.org/cookbook/input/load-document-from-url

03-27 15:29:39.032: E/AndroidRuntime(5046): FATAL EXCEPTION: main
03-27 15:29:39.032: E/AndroidRuntime(5046): java.lang.RuntimeException: Unable to start activity ComponentInfo{pt.tarie.cookiesapps/pt.tarie.cookiesapps.HTMLParse}: android.os.NetworkOnMainThreadException
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2186)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.ActivityThread.access$600(ActivityThread.java:145)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.os.Looper.loop(Looper.java:137)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.ActivityThread.main(ActivityThread.java:5099)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at java.lang.reflect.Method.invokeNative(Native Method)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at java.lang.reflect.Method.invoke(Method.java:511)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:803)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at dalvik.system.NativeStart.main(Native Method)
03-27 15:29:39.032: E/AndroidRuntime(5046): Caused by: android.os.NetworkOnMainThreadException
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:311)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:439)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:424)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:178)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at org.jsoup.helper.HttpConnection.get(HttpConnection.java:167)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at pt.tarie.cookiesapps.HTMLParse.onCreate(HTMLParse.java:23)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.Activity.performCreate(Activity.java:5117)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
03-27 15:29:39.032: E/AndroidRuntime(5046):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2150)

如有任何帮助,我们将不胜感激。

共有1个答案

向锦
2023-03-14

发布堆栈跟踪。u无法在UI线程中执行网络操作。请确保在asyc任务中运行

 类似资料:
  • 我需要的是在第二个中获取第二个 的文本,并对表中的每一组 标记执行此操作。

  • 我想解析出这个Nasa页面上的描述,页面底部的文字 我该怎么做?

  • 我试图在这里使用JSOUP解析html标记。我对jsoup是新来的。基本上,我需要解析这些标记,获取这些标记中的文本,并应用class属性中提到的样式。 我正在创建一个SpannableStringBuilder,它可以创建子字符串,应用样式,并将它们附加到没有样式的文本中。 我不确定如何解析不在任何标记之间的字符串,例如“there are”和“worker from the”。 需要输出,例如

  • 我知道在解析HTML表方面有很多问题。然而,在做了一些研究并研究了Jsoup之后,我有点被它难倒了。 我有时间表 我想解析以取出标记的文本,但要保持某种格式。 我更愿意将数据分割成可管理的块。也许我可以做一个? 但是,这意味着没有演讲时间。除非不需要计算空格和计算时间,假设每个空格是15分钟。

  • 主要内容:Jsoup 使用DOM解析HTML 语法,Jsoup 使用DOM解析HTML 说明,Jsoup 使用DOM解析HTML 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后如何使用类似 DOM 的方法。 Jsoup 使用DOM解析HTML 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 sampleDiv : 元素对象表示由 id“sampleDiv”标识的 html

  • 问题内容: 这是我的HTML来源 这是我获取内容的Java程序,它过滤HTML标记 是否有使用Jsoup而不是使用Java而不是Regex解析HTML内容的简便方法 有没有办法只获取所需的内容。所以在这里我只需要内容“项目2-222” 问题答案: 尝试使用jsoup轻松解析: 要了解更多信息,请访问Jsoup Docs