精华内容
下载资源
问答
  • 火山安卓HTML网页解析

    2020-08-15 09:39:25
    自定义列表框加按钮,并创建网页访问变量 三、所需解析的网站 打开起点小说网:https://book.qidian.com 需要取得下面的所有小说 四、创建类 根据网站信息,创建书籍信息类 五、按钮_被单击 ①事件 ②读取网页...

    一、配置模块
    勾选HTML解析工具类、火山模块
    在这里插入图片描述

    在这里插入图片描述

    二、布局
    自定义列表框加按钮,并创建网页访问变量

    在这里插入图片描述

    在这里插入图片描述

    三、所需解析的网站
    打开起点小说网:https://book.qidian.com

    需要取得下面的所有小说

    在这里插入图片描述

    四、创建类
    根据网站信息,创建书籍信息类

    在这里插入图片描述

    五、按钮_被单击
    ①事件
    在这里插入图片描述

    在这里插入图片描述

    ②读取网页

    在这里插入图片描述

    六、解析前的分析
    ①分析所需内容区开始和结束
    是列表内容

    在这里插入图片描述

    所需内容区结束
    查找"
    在这里插入图片描述

    对应解析代码

    在这里插入图片描述

    ②书名分析
    看到每本书名区都有div容器布局,然后在h4标题内,最后在a标签内
    在这里插入图片描述

    对应解析代码
    在这里插入图片描述

    ③书籍封面图片分析
    均以div布局,在a标签内,img区,src链接
    在这里插入图片描述

    对应解析代码
    在这里插入图片描述

    ④头像分析
    均以div布局,在p段落内,img区,src链接

    在这里插入图片描述

    对应解析代码

    在这里插入图片描述

    ⑤作者、书籍类型、书籍状态分析
    均以div布局,在p段落内,在a标签内,或在span内标签里
    在这里插入图片描述

    对应解析代码

    在这里插入图片描述

    ⑥简介分析
    均以div布局,在p段落内
    在这里插入图片描述

    对应解析代码

    在这里插入图片描述

    七、开始解析
    ①事件
    在这里插入图片描述

    ②解析
    先解析出总共有多少分小说,并按组分类,然后各类再进入详细解析,最终取得所有数据
    根据解析得出有多少本书,就循环多少次

    在这里插入图片描述
    在这里插入图片描述

    八、显示数据
    ①事件

    在这里插入图片描述
    在这里插入图片描述

    ②参照网页编排布局
    布局器一层层相套

    在这里插入图片描述

    ③创建布局变量
    先创建变量
    在这里插入图片描述

    ④完成布局加入数据

    在这里插入图片描述

    九、演示效果

    在这里插入图片描述

    文本转载至利快云,点击阅读原文:点击阅读原文

    文本对应案例源码下载:点击下载案例源码

    展开全文
  • android——网页解析SAXParser

    千次阅读 2012-06-11 14:45:43
    本代码实现的是对某一网页解析,主要代码为: URL url = new URL("http://www./partner/tv/lau/songlist_hot.jsp?ps=9&si=1"); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser =...

    本代码实现的是对某一网页的解析,主要代码为:

    URL url = new URL("http://www./partner/tv/lau/songlist_hot.jsp?ps=9&si=1");
    SAXParserFactory factory = SAXParserFactory.newInstance();
    
    SAXParser parser = factory.newSAXParser();
    
    XMLReader reader = parser.getXMLReader();
    
    //reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
    
    reader.setContentHandler(new MyContentHandler());
    
    reader.parse(new InputSource(url.openStream()));

    MyContentHandler为我们自定义的一个继承DefaultHandler的一个类,MyContentHandler一般重写以下五个方法:
        @Override
        public void startDocument() throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.startDocument();
    
        }
    
        @Override
    
        public void startElement(String uri, String localName, String qName,
    
                Attributes attributes) throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.startElement(uri, localName, qName, attributes);        
        }
    
        
    
        @Override
    
        public void characters(char[] ch, int start, int length)
    
                throws SAXException {
    
            // TODO Auto-generated method stub
            super.characters(ch, start, length);
    
        }
    
    
        @Override
    
        public void endElement(String uri, String localName, String qName)
    
                throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.endElement(uri, localName, qName);
        }
    
    
        @Override
    
        public void endDocument() throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.endDocument();
    
        }
    

    现在例如我们对以下网页的内容进行解析:分别取出"卡拉OK演示歌曲"、"最新歌曲"、"http://www./partner/tv/lau/songlist_last.jsp?ps=9&si=1 " 。。。这些内容。

    <?xml version="1.0" encoding="UTF-8"?>
    <menulist version="1.0"> 
      <parent title="卡拉OK演示歌曲" id="0"/>
        <menusets> 
        <menu id="0"> 
    	<name>最新歌曲</name> 
    	<menulink>http://www./partner/tv/lau/songlist_last.jsp?ps=9&si=1</menulink>
        </menu> 
        <menu id="1"> 
            <name>最热歌曲</name> 
    	<menulink>http://www./partner/tv/lau/songlist_hot.jsp?ps=9&si=1</menulink>
        </menu> 
        <menu id="2"> 
    	<name>总排行</name> 
    	<menulink>http://www./partner/tv/lau/songlist_top.jsp?ps=9&si=1</menulink> 
        </menu>
        <menu id="3">
    	<name>最热艺人</name> 
    	<menulink>http://www./partner/tv/lau/starlist_top.jsp?ps=9&si=1</menulink> 
        </menu>
      </menusets> 
    </menulist>
    

     

    通过下面的程序解析的结果如下:

    05-02 02:28:51.687: D/DEBUG(888): startElement localName:                    menulist
    05-02 02:28:51.687: D/DEBUG(888): startElement attributes.getLocalName:      version
    05-02 02:28:51.687: D/DEBUG(888): startElement attributes.getValue:          1.0
    05-02 02:28:51.687: D/DEBUG(888): characters: 
    05-02 02:28:51.687: D/DEBUG(888): startElement localName:                    parent
    05-02 02:28:51.687: D/DEBUG(888): startElement attributes.getLocalName:      id
    05-02 02:28:51.687: D/DEBUG(888): startElement attributes.getValue:          0 
    05-02 02:28:51.687: D/DEBUG(888): startElement attributes.getLocalName:      title
    05-02 02:28:51.687: D/DEBUG(888): startElement attributes.getValue:          卡拉OK演示歌曲
    05-02 02:28:51.687: D/DEBUG(888): startElement endElement:                   parent
    05-02 02:28:51.687: D/DEBUG(888): characters: 
    05-02 02:28:51.697: D/DEBUG(888): startElement localName:                    menusets
    05-02 02:28:51.697: D/DEBUG(888): characters: 
    05-02 02:28:51.697: D/DEBUG(888): startElement localName:                    menu
    05-02 02:28:51.697: D/DEBUG(888): startElement attributes.getLocalName:      id
    05-02 02:28:51.697: D/DEBUG(888): startElement attributes.getValue:          0 
    05-02 02:28:51.697: D/DEBUG(888): characters: 
    05-02 02:28:51.697: D/DEBUG(888): startElement localName:                    name
    05-02 02:28:51.697: D/DEBUG(888): characters:                                最新歌曲
    05-02 02:28:51.697: D/DEBUG(888): startElement endElement:                   name
    05-02 02:28:51.697: D/DEBUG(888): characters: 
    05-02 02:28:51.697: D/DEBUG(888): startElement localName:                    menulink
    05-02 02:28:51.697: D/DEBUG(888): characters:                                http://www./partner/tv/lau/songlist_last.jsp?ps=9
    05-02 02:28:51.707: D/DEBUG(888): characters:                                & 
    05-02 02:28:51.707: D/DEBUG(888): characters:                                si=1
    05-02 02:28:51.707: D/DEBUG(888): startElement endElement:                   menulink
    05-02 02:28:51.707: D/DEBUG(888): characters: 
    05-02 02:28:51.707: D/DEBUG(888): startElement endElement:                   menu
    05-02 02:28:51.707: D/DEBUG(888): characters: 
    05-02 02:28:51.707: D/DEBUG(888): startElement localName:                    menu
    05-02 02:28:51.707: D/DEBUG(888): startElement attributes.getLocalName:      id
    05-02 02:28:51.707: D/DEBUG(888): startElement attributes.getValue:          1 
    05-02 02:28:51.707: D/DEBUG(888): characters: 
    05-02 02:28:51.707: D/DEBUG(888): startElement localName:                    name
    05-02 02:28:51.707: D/DEBUG(888): characters:                                最热歌曲
    05-02 02:28:51.707: D/DEBUG(888): startElement endElement:                   name
    05-02 02:28:51.707: D/DEBUG(888): characters: 
    05-02 02:28:51.707: D/DEBUG(888): startElement localName:                    menulink
    05-02 02:28:51.717: D/DEBUG(888): characters:                                http://www./partner/tv/lau/songlist_hot.jsp?ps=9
    05-02 02:28:51.717: D/DEBUG(888): characters:                                &
    05-02 02:28:51.717: D/DEBUG(888): characters:                                si=1
    05-02 02:28:51.717: D/DEBUG(888): startElement endElement:                   menulink
    05-02 02:28:51.717: D/DEBUG(888): characters: 
    05-02 02:28:51.717: D/DEBUG(888): startElement endElement:                   menu
    05-02 02:28:51.717: D/DEBUG(888): characters: 
    05-02 02:28:51.717: D/DEBUG(888): startElement localName:                    menu
    05-02 02:28:51.717: D/DEBUG(888): startElement attributes.getLocalName:      id
    05-02 02:28:51.717: D/DEBUG(888): startElement attributes.getValue:          2
    05-02 02:28:51.717: D/DEBUG(888): characters: 
    05-02 02:28:51.727: D/DEBUG(888): startElement localName:                    name
    05-02 02:28:51.727: D/DEBUG(888): characters:                                总排行
    05-02 02:28:51.727: D/DEBUG(888): startElement endElement:                   name
    05-02 02:28:51.727: D/DEBUG(888): characters: 
    05-02 02:28:51.727: D/DEBUG(888): startElement localName:                    menulink
    05-02 02:28:51.727: D/DEBUG(888): characters:                                http://www./partner/tv/lau/songlist_top.jsp?ps=9
    05-02 02:28:51.727: D/DEBUG(888): characters:                                &
    05-02 02:28:51.727: D/DEBUG(888): characters:                                si=1
    05-02 02:28:51.727: D/DEBUG(888): startElement endElement:                   menulink
    05-02 02:28:51.727: D/DEBUG(888): characters: 
    05-02 02:28:51.727: D/DEBUG(888): startElement endElement:                   menu
    05-02 02:28:51.727: D/DEBUG(888): characters: 
    05-02 02:28:51.727: D/DEBUG(888): startElement localName:                    menu
    05-02 02:28:51.727: D/DEBUG(888): startElement attributes.getLocalName:      id
    05-02 02:28:51.727: D/DEBUG(888): startElement attributes.getValue:          3
    05-02 02:28:51.738: D/DEBUG(888): characters: 
    05-02 02:28:51.738: D/DEBUG(888): startElement localName:                    name
    05-02 02:28:51.738: D/DEBUG(888): characters:                                最热艺人
    05-02 02:28:51.738: D/DEBUG(888): startElement endElement:                   name
    05-02 02:28:51.738: D/DEBUG(888): characters: 
    05-02 02:28:51.738: D/DEBUG(888): startElement localName:                    menulink
    05-02 02:28:51.738: D/DEBUG(888): characters:                                http://www./partner/tv/lau/starlist_top.jsp?ps=9
    05-02 02:28:51.738: D/DEBUG(888): characters:                                &
    05-02 02:28:51.747: D/DEBUG(888): characters:                                si=1
    05-02 02:28:51.747: D/DEBUG(888): startElement endElement:                   menulink
    05-02 02:28:51.747: D/DEBUG(888): characters: 
    05-02 02:28:51.747: D/DEBUG(888): startElement endElement:                   menu
    05-02 02:28:51.747: D/DEBUG(888): characters: 
    05-02 02:28:51.747: D/DEBUG(888): startElement endElement:                   menusets
    05-02 02:28:51.747: D/DEBUG(888): characters: 
    05-02 02:28:51.747: D/DEBUG(888): startElement endElement:                   menulist

    先上代码
    要注意,必须在AndroidMainfest.xml上面加上INTERNET权限:
    <uses-permission android:name="android.permission.INTERNET"/>

    SaxParserDemoActivity.java
    package com.lau.android.saxparse;
    
    import java.io.IOException;
    
    import java.net.MalformedURLException;
    
    import java.net.URL;
    
    import javax.xml.parsers.ParserConfigurationException;
    
    import javax.xml.parsers.SAXParser;
    
    import javax.xml.parsers.SAXParserFactory;
    
    import org.xml.sax.InputSource;
    
    import org.xml.sax.SAXException;
    
    import org.xml.sax.XMLReader;
    
    import android.app.Activity;
    
    import android.os.Bundle;
    
    import android.view.View;
    
    import android.view.View.OnClickListener;
    
    import android.widget.Button;
    
    
    
    public class SaxParserDemoActivity extends Activity {
    
        
    
        private Button button = null;
    
        
    
        /** Called when the activity is first created. */
    
        @Override
    
        public void onCreate(Bundle savedInstanceState) {
    
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.main);
    
            
    
            button = (Button) findViewById(R.id.button1);
    
            button.setOnClickListener(new OnClickListener() {            
                @Override
    
                public void onClick(View v) {
    
                    // TODO Auto-generated method stub
    
                    new Thread(new Runnable() {                    
                        @Override
    
                        public void run() {
    
                            // TODO Auto-generated method stub                        
                            try {
    
                                URL url = new URL("****");
    
                              SAXParserFactory factory = SAXParserFactory.newInstance();
    
                                SAXParser parser = factory.newSAXParser();
    
                                XMLReader reader = parser.getXMLReader();
    
    //            reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
    
                                reader.setContentHandler(new MyContentHandler());
    
                                reader.parse(new InputSource(url.openStream()));
    
                            } catch (MalformedURLException e) {
    
                                // TODO Auto-generated catch block
    
                                e.printStackTrace();
    
                            } catch (ParserConfigurationException e) {
    
                                // TODO Auto-generated catch block
    
                                e.printStackTrace();
    
                            } catch (SAXException e) {
    
                                // TODO Auto-generated catch block
    
                                e.printStackTrace();
    
                            } catch (IOException e) {
    
                                // TODO Auto-generated catch block
    
                                e.printStackTrace();
    
                            }
    
                        }
    
                    }).start();                
                }
    
            });
    
        }
    
    }
    
    MyContentHandler.java
    package com.lau.android.saxparse;
    
    import org.xml.sax.Attributes;
    
    import org.xml.sax.SAXException;
    
    import org.xml.sax.helpers.DefaultHandler;
    
    import android.util.Log;
    
    
    
    public class MyContentHandler extends DefaultHandler {
    
        @Override
    
        public void startDocument() throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.startDocument();
    
        }
    
        @Override
    
        public void startElement(String uri, String localName, String qName,
    
                Attributes attributes) throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.startElement(uri, localName, qName, attributes);
    
            Log.d("DEBUG", "startElement localName " + localName);
    
            for(int i=0; i<attributes.getLength(); i++) {
    
                String[] str = new String[2];
    
                Log.d("DEBUG", "attributes1:" + attributes.getLocalName(i));
    
                Log.d("DEBUG", "attributes2:" + attributes.getValue(i));
            }
        }
    
        
    
        @Override
    
        public void characters(char[] ch, int start, int length)
    
                throws SAXException {
    
            // TODO Auto-generated method stub
    
            String str = new String(ch, start, length);
    
            Log.d("DEBUG", "characters: " + str);
    
            super.characters(ch, start, length);
    
        }
    
        @Override
    
        public void endElement(String uri, String localName, String qName)
    
                throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.endElement(uri, localName, qName);
    
            Log.d("DEBUG", "endElement " + localName);
    
        }
    
        @Override
    
        public void endDocument() throws SAXException {
    
            // TODO Auto-generated method stub
    
            super.endDocument();
    
        }
    }
    

    main.xml


    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
        android:layout_width="fill_parent"
    
        android:layout_height="fill_parent"
    
        android:orientation="vertical" >
    
        <TextView
    
            android:layout_width="fill_parent"
    
            android:layout_height="wrap_content"
    
            android:text="@string/hello" />
    
        <Button
    
            android:id="@+id/button1"
    
            android:layout_width="wrap_content"
    
            android:layout_height="wrap_content"
    
            android:text="Button" />
    
    </LinearLayout>

    应该注意几点

    1、在解析网页时,例如上述网页中的链接http://www./partner/tv/lau/songlist_hot.jsp?ps=9&si=1,
    那么我们读到的将会把这个链接分为3段:
    (1)、http://www./partner/tv/lau/starlist_top.jsp?ps=9
    (2)、&
    (3)、si=1
    2、方法startElement中的解析的为"<>"括号中的参数
    <parent title="卡拉OK演示歌曲" id="0"/>对应的内容
    localName为"parent"
    attributes.length为2
    attributes.getLocalName(0)将得到的为"id"
    attributes.getValue(0)将得到的为"0"
    attributes.getLocalName(1)将得到的为"title"
    attributes.getValue(1)将得到的为"卡拉OK演示歌曲"
    3、在android4.0中,必须把网页解析放到线程里面

















    展开全文
  • android 解析html网页

    2016-08-17 22:30:30
    Android 解析HTML 使用Jsoup解析HTML数据 对Android 解析html 数据,用的不是太多,自己也是最近才了解到,分享给大家,希望有所帮助。Document doc = Jsoup.connect(“http://www.radio366.com/xx.asp?sheng=bj“)...

    Android 解析HTML
    使用Jsoup解析HTML数据 对Android 解析html 数据,用的不是太多,自己也是最近才了解到,分享给大家,希望有所帮助。

    Document doc = Jsoup.connect(“http://www.radio366.com/xx.asp?sheng=bj“).timeout(5000).get();
    Element content=doc.body();
    Elements divs=content.getElementsByClass(“content”);
    Document divcontions = Jsoup.parse(divs.toString());
    Elements element = divcontions.getElementsByTag(“li”);

          for(Element links : element)
           {
               String title = links.getElementsByTag("li").text();
               Log.i(TAG,"title:"+title);
               String link   = links.select("a").attr("href");
               String url  = link;
               Log.i(TAG,"连接:"+link);
               list.add(new Province(title, url));
    

    API
    简单介绍:
    Jsoup.connect().get () 以get方式进行连接网络返回值为Document
    timeout(5000)设置连接超时时间
    .body() 获取html中的body部分的内容;
    getElementsByClass(String className)
    获取标签中对应的class 的内容 返回值为Elements
    例如:

    关闭 width=”120” height=”164” alt=”凤凰新闻客户端” title=”凤凰新闻客户端” >

    里面的class=“weixin”
    getElementsByTag(String tag)
    获取对应标签的内容, 返回值为Elements
    如:getElementsByTag(“li”)获取的是

    资讯中的数据
    getElementById(String id)
    获取标签对应Id中的内容,返回值为Element
    例如:getElementById(“viceNav”);获取的是

    Text()获取文本信息
    link.attr(“href”); // “http://example.com/“//取得链接地址
    下面是中文API的网址,感兴趣的同学可以深入学习
    http://www.open-open.com/jsoup/

    展开全文
  • Android解析html网页

    千次阅读 热门讨论 2015-10-12 22:50:35
    本文主要记录通过网页解析得到自己想要的数据,也就是一个简单的爬虫。将使用第三方库jsoup实现,通过第三方库,能够快速方便的解析html。在开始之前,需要具备以下能力: 首先,需要对网页编程有一点了解,知道一个...

    本文主要记录通过网页解析得到自己想要的数据,也就是一个简单的爬虫。将使用第三方库jsoup实现,通过第三方库,能够快速方便的解析html。在开始之前,需要具备以下能力:

    • 首先,需要对网页编程有一点了解,知道一个页面的结构,标签的含义,知道html网页其实是一种xml格式的文件。如果对这些都了解的话,就可以很方便的进行网页解析了,如果不太熟悉,建议先了解一下网页编程。
    • 然后,在使用第三方库之前,最好是先看一下官方文档:Jsoup官方文档Jsoup文档中文版

    接下来就通过一个具体需求来实现。假设需求是一个Android端的博客浏览器,第一页是博客标题的列表,点击单个标题可以进入第二个页面,第二个页面是一个WebView,通过第一个页面传入的url加载指定博客的网页。以上这个简单的需求,两个页面实现,当然重点是在第一个页面,怎样获取博客标题的列表?

    1.分析网页结构

    在解析一个网页之前,需要先了解这个网页的结构,在PC端通过浏览器的开发者工具就能很方便的查看网页结构,比如在Chrome中,按F12就可以出现开发者工具。接下来就是分析博客列表页面的结构:
    根据需求,我要得到博客标题的列表,于是,在Chrome中,打开指定页面,右键选择某个标题,选择“审查元素”在右边就能看到指定标题的代码:
    这里写图片描述

    从网页源码中,需要的内容的结构:

      <span class="link_title"><a href="/ttccaaa/article/details/49282851">
            Win10与Ubuntu 15.04双系统安装方法            
            </a></span>

    一个< span >标签,里面有一个超链接标签< a >,链接指向博客内容的网页,到此,思路就比较清晰了,只需要提取出当前页面中class为“link_title”的< span >标签下的超链接标签< a >的内容即可,然后封装到ListView中,显示到界面,就能实现功能了。

    2.配置jsoup

    关于jsoup的介绍和使用可以从官网了解到,下面开始配置和使用:

    2.1 下载:

    首先需要下载jar包,目前最新版是1.8.3,如果只是简单的使用,可以只下载jsoup-1.8.3.jar 官方下载:jsoup下载

    2.2 添加依赖:

    如同以前的步骤,先将下载的jar包放在libs下,然后对它右键选择“Add As Library”这样就完成了依赖添加。

    3. 写代码

    根据上面的分析,需要找到文章标题,首先要找到class=”link_title”的< span >标签,然后获取到其中的< a >标签的属性和内容,就是需要的标题和url,所以,第一步,先写一个bean,用来保存title和对应的url

    public class TitleBean {
        private String title;
        private String url;
    
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    }

    接下来就是把刚才的思路转换成代码:

       private class GetDataThd extends Thread {
            @Override
            public void run() {
                super.run();
                try {
                    Document doc = Jsoup.connect(BLOG_URL).get();//通过url获取到网页内容
    
                    Elements elements = doc.getElementsByClass("link_title");//查找所有class为"link_title"的元素
                    for (Element e : elements) {
                        Elements titles = e.getElementsByTag("a");//在每一个找到的元素中,查找<a>标签
                        for (Element title : titles) {
                            //将找到的标签数据封装起来
                            TitleBean bean = new TitleBean();
                            bean.setTitle(title.text());//获取标签的内容,也就是文章标题
                            bean.setUrl("http://blog.csdn.net" + title.attr("href"));//获取标签属性,也就是文章链接
                            list.add(bean);
                        }
                    }
                    msgHandler.sendEmptyMessage(MSG_LOAD_OK);//通知UI更新List
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    在Adapter中,设置点击事件,跳转到详情页面:

       @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.item_title_list, null);
                holder = new ViewHolder();
                holder.tvTitle = (TextView) convertView.findViewById(R.id.tv_item_title);
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
    
            TitleBean bean = mList.get(position);
            holder.tvTitle.setText(bean.getTitle());
    
            holder.tvTitle.setOnClickListener(new ItemClickListener(bean.getUrl()));
    
    
            return convertView;
        }
    
        private class ItemClickListener implements View.OnClickListener {
            private String url;
    
            public ItemClickListener(String url) {
                this.url = url;
            }
    
            @Override
            public void onClick(View v) {
                Intent toDetail = new Intent(mContext, DetailActivity.class);
                toDetail.putExtra("detailUrl", url);
                mContext.startActivity(toDetail);
            }
        }
    

    接下来在详情页面,通过getIntent获取到url,然后用webView加载这个url即可:

     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_detail);
    
            String url = getIntent().getStringExtra("detailUrl");
            WebView mWebView = (WebView) findViewById(R.id.web_detail);
    
            mWebView.getSettings().setLoadWithOverviewMode(true);
            mWebView.getSettings().setUseWideViewPort(true);
    
            mWebView.loadUrl(url);
        }

    运行效果:
    这里写图片描述

    到此,通过解析网页得到指定数据的小例子就完成了,思路还是比较简单的。当然,多亏了第三方库jsoup,才能够简单方便的抓取网页的指定内容。

    展开全文
  • Android——解析HTML网页

    千次阅读 2016-05-15 22:13:46
    可能之前一些android程序员自己做一个解析html网页的demo时,大部分都会想到利用jsoup或者是HttpURLConnection 解析,我也用过,这边我就举一个简单的例子,就不详细说了。 首先布局文件,为了不浪费时间,写一个...
  • 博客内容:http://blog.csdn.net/ttccaaa/article/details/49082091#comments
  • Android使用jsoup解析网页

    千次阅读 2012-05-09 08:34:04
     由于android课程大作业要实现一个空闲教室查询相关的功能,而教室使用信息可以从教务处的网站上通过解析html来获取。之前研究了一下htmlparser这个开源库,但是发现和android提供的库有冲突,但其在纯java应用程序...
  • 网页有两种格式,一种是xml另一种是html,目前似乎好像大部分都是html格式的,查看网页格式的方法是在浏览器中右键-->查看源码 一,XML解析的三大方法 (1) SAX: Simple API for XML SAX是一个解析速度快并且占用内存...
  •  由于android的WebView等相关类没有提供解析html网页内容的接口,我们想要获取网页的内容并解析出我们想要的元素内容,用android的固有API是没办法了。  这里我提供两种解析html思路:第一种,使用第三方解析html...
  • 抓取网页数据并解析、Jsoup、
  • 近期的项目中使用了Jsoup来解析网页,下面就给大家(特别是新手)献丑讲下如何使用Jsoup来解析网页内容。首先看下我们在实际使用中加载网页常用的WebView的表现如何import android.support.v7.app.AppCompatActivity...
  • android 开发--抓取网页解析网页内容的若干方法(网络爬虫)(正则表达式) 标签: android开发爬虫技术xml解析html解析 2015-09-11 21:35 836人阅读 评论(0) 收藏 举报  分类: android开发学习笔记
  • 抓取网页数据并解析Android

    千次阅读 2016-06-17 05:04:20
    抓取网页数据并解析 标签: 网页抓取jsoupAndroid 2016-03-02 13:54 1262人阅读 评论(1) 收藏 举报  分类:   Android开发(原创)(7)  版权声明:本文为博主原创文章,未经博主...
  • } } 当想要获取网页数据时,比如天气 http://wthrcdn.etouch.cn/weather_mini?city长沙 其网页显示结果如下: 然后 String path= http://wthrcdn.etouch.cn/weather_mini?city长沙; String ...
  • Android:使用jsoup解析网页

    千次阅读 2012-07-06 15:38:26
    Android使用jsoup解析网页 2012-05-09 09:47:06 我来说两句  收藏 我要投稿  [字体:小 大] 问题:  由于android课程大作业要实现一个空闲教室查询相关的功能,而教室使用信息可以从教务处的...
  • android和java开发中要用到的html解析所用到的文档,我整理下来了,大家可以下载着看看
  • } } 当想要获取网页数据时,比如天气 http://wthrcdn.etouch.cn/weather_mini?city长沙 其网页显示结果如下: 然后 String path= http://wthrcdn.etouch.cn/weather_mini?city长沙; String ...
  • 主要介绍了Android TextView显示Html类解析网页和图片及自定义标签用法,实例分析了Android中TextView控件的使用技巧,需要的朋友可以参考下
  • 在上一篇博客中我讲到了jsoup的使用场景,也做了简单的使用演示,有兴趣...《Jsoup网页解析体验(上) - 菜鸟江涛的博客 - CSDN博客》 这一篇讲下上一篇遗留的一个问题,如何加载文本中的图片 先看图片加载的效果如何?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,964
精华内容 14,385
关键字:

安卓网页解析