来源:自学PHP网 时间:2015-04-14 14:51 作者: 阅读:次
[导读] 在前面介绍了使用Jsoup解析html,Jsoup也比较强大和方便,不过需要使用第三方包,在只需解析html很少内容的时候,可以考虑用正则表达式查找匹配的内容,下面给一个简单例子,爬取页...
|
在前面介绍了使用Jsoup解析html,Jsoup也比较强大和方便,不过需要使用第三方包,在只需解析html很少内容的时候,可以考虑用正则表达式查找匹配的内容,下面给一个简单例子,爬取页面中的title标签的文本内容,代码如下: package com.home.parsehtml;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private Button btn;
private static final String URL_STR = "http://vip.astro.sina.com.cn/iframe/astro/view/aries/day/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.main_btn);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == btn) {
new Thread(r).start();
}
}
Runnable r = new Runnable() {
@Override
public void run() {
String content = getHtmlContent();
doParse(content);
}
};
/**
* 读取html
*
* @return
*/
protected String getHtmlContent() {
StringBuffer sb = new StringBuffer();
BufferedReader br = null;
try {
URL url = new URL(URL_STR);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
br = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "utf-8"));
String temp;
while ((temp = br.readLine()) != null) {
sb.append(temp).append("\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
/**
* 使用正则抽取title标签内容
*
* @param content
*/
protected void doParse(String content) {
// 匹配
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com