php 抓取网页 源码(:创建一个工具类:用于输出抓取的html源代码)
优采云 发布时间: 2021-11-21 22:06php 抓取网页 源码(:创建一个工具类:用于输出抓取的html源代码)
第一步:
创建工具类:用于输出爬取的html源码
package Util;
import android.util.Log;
import android.webkit.JavascriptInterface;
/**获取PIN值
* Created by Administrator on 2016/8/12.
*/
public class JavascriptUtil {
@JavascriptInterface
public void getPin(String html){
System.out.println("html---->"+html);
Log.d("webActivity.this",html);
}
}
你必须写@JavascriptInterface,原因:
第 2 部分:设置 webview 的属性
webView=(WebView)findViewById(R.id.web_view_auto);
webView.getSettings().setJavaScriptEnabled(true);//支持javascript语言
webView.addJavascriptInterface(new JavascriptUtil(),"Methods");//设置javascript语言,用具获取网页中的pin,"Methods"为javascriptinterface的名称
第 3 部分:页面加载后,获取
//WebViewClient 主要处理关于页面跳转,页面请求等操作
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// load(url,webView);
return super.shouldOverrideUrlLoading(view, url);
}
//页面加载结束时,获取页面的html值pin
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.d("webActivity.this","+++++++++++++++++++++++++++++");
Log.d("webActivity.this",url);
view.loadUrl("javascript:window.Methods.getPin(''+document.getElementsByTagName('html')[0].innerHTML+'');");
//上面这一步就是抓取Html源码
}
});
第 4 部分:
在android studio中,有时无法使用log、d()和System,这个重启就可以解决问题了