jsoup爬取网页数据

xiaoxiao2021-02-28  137

###使用jsoup

导入依赖:

compile ‘org.jsoup:jsoup:1.10.3’

###使用Jsoup解析 果壳网 -> 小组 的数据

请求网络需要异步进行;注意申请权限;使用Jsoup.connect()方法需要抛异常;解析果壳网: 首先链接需要解析的网址,使用Jsoup的connect()方法: //http://www.guokr.com/group/ Document document = Jsoup.connect("http://www.guokr.com/group/").get(); //System.out.println(document); Log.e(TAG, "parsingGuoKr: 标题" + document.title());//获取标题 getElementsByClass()方法查找class中的元素,通常返回一个Elements集合; //通过class查找元素 Elements titles = document.getElementsByClass("titles"); 通过first()方法获取集合中的第一个元素: //第一个titles中的所有元素 Element l1 = titles.first(); 通过getElementsByTag()方法获取标签; //获取所有的li标签 Elements li = titles.first().getElementsByTag("li");//获取所有的li标签 遍历Elements数组,获取每一个title-link块中的标题: for (Element e : li) { //获取到title-link元素集,再获取第一个元素 Element elementsByClass = e.getElementsByClass("title-link").first(); ... 使用after()方法获取标签中的内容,返回Element;使用text()方法获取文本;使用arrt();方法获取超链接; ... //找到a标签 再获取文本 Element titleA = elementsByClass.after("a"); System.out.println("标题" + titleA.text()); System.out.println("标题的超链接" + titleA.attr("href")); } 获取Elements的超链接: ... Elements title_imgs = e.getElementsByClass("title-imgs"); for (Element imgs:title_imgs) { Elements title_img = imgs.getElementsByClass("title-img"); Elements a = title_img.after("a"); for (Element ima : a) { String aStr = ima.toString(); int i1 = aStr.indexOf("("); int i2 = aStr.indexOf(")"); System.out.println(aStr.substring(i1+1,i2)); } }

###直接解析String类型Html数据:

Html.fromHtml(pStr)方法,返回String类型; final TextView tv = (TextView) findViewById(R.id.tv); Document document = Jsoup.connect("http://www.guokr.com/post/794784/").get(); Element gbbcode_content = document.getElementsByClass("gbbcode-content").first(); final String pStr = gbbcode_content.getElementsByTag("p").toString(); System.out.println(pStr); runOnUiThread(new Runnable() { @Override public void run() { tv.setText(Html.fromHtml(pStr)); } });
转载请注明原文地址: https://www.6miu.com/read-31788.html

最新回复(0)