jsoup
一 概述:
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
二 功能
1. 从一个URL,文件或字符串中解析HTML;
2. 使用DOM或CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;
三 参考资料
jsoup官方文档
https://jsoup.org/cookbook/
中文文档:
http://www.open-open.com/jsoup/
四 添加依赖
compile 'org.jsoup:jsoup:1.9.2'
五 请求参数一般在网络中,在清单文件添加权限
<uses-permission android:name="android.permission.INTERNET"/>
六 用log来验证数据是否正确,布局
<Button android:text="解析资源" android:onClick="dian" android:layout_width="match_parent" android:layout_height="wrap_content" />
七 代码实现
1,找到你所需要的网页,右键查看网页源码
(我找的网页):
http://home.meishichina.com/show-top-type-recipe.html
2,看下我们要查找的数据
3,这里需要注意,网络请求是耗时操作,需要放在子线程,不然会报一个NetworkOnMainThreadException的异常
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //使用Element.select(String selector)查找元素, // 使用Node.attr(String key)方法取得一个属性的值 public void dian(View view) { new Thread(){ public void run(){ try { //URL加载一个Document对象。 Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get(); //“椒麻鸡”和它对应的图片都在<div class="pic">中 Elements titleAndPic = doc.select("div.pic"); Log.i("mytag", "title:" + titleAndPic.get(1).select("a").attr("title") + "pic:" + titleAndPic.get(1).select("a").select("img").attr("data-src")); //所需链接在<div class="detail">中的<a>标签里面 Elements url = doc.select("div.detail").select("a"); Log.i("mytag", "url:" + url.get(1).attr("href")); //原料在<p class="subcontent">中 Elements burden = doc.select("p.subcontent"); //对于一个元素中的文本,可以使用Element.text()方法 Log.i("mytag", "burden:" + burden.get(1).text()); }catch(Exception e) { Log.i("mytag", e.toString()); } } }.start(); } }
八 打印出来的log
更多内容请参考官方文档,谢谢查看。