Android studio爬取网页

准备阶段

我们准备在Android studio 中使用Jsoup爬取某个网页,并将其标题显示在app中。

引入Jsoup

在 build.gradle(Mouble:app)中写入

implementation 'org.jsoup:jsoup:1.9.2'

设置app允许网络访问

在mainifest文件中

//在上一行
  <uses-permission android:name="android.permission.INTERNET"/>
//在application中
	android:usesCleartextTraffic="true"

handler和多线程的学习

网络连接可能很耗时,因此需要把网络连接放到子线程中进行

对app各个控件的更改必须放在UI线程中,不能在子线程中直接更改,所以要使用Handler来进行信息的传递,保证线程安全。
Android studio爬取网页_第1张图片

经典方法thread加handler message

定义子线程并在子线程中提交信息

 Thread thread= new Thread(new Runnable() {
            @Override
            public void run() {
                //耗时操作
                Message msg=handler.obtainMessage();


                try {
                    Document doc=Jsoup.connect("https://www.52bqg.com/").get();
                    title =doc.title();
                    msg.obj=title;

                }catch (IOException e){
                    ex=e.toString();
                    msg.obj=ex;
                }
                handler.sendMessage(msg);
            }
        });

在handler方法中获得信息并更新控件

private Handler handler=new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            if (msg.obj!=null)
            textView.setText(msg.obj.toString());
        }
    };

jsoup的学习和使用

jsoup学习文档

你可能感兴趣的:(Android)