您的位置:首页 > 编程语言 > Java开发

用java截取网页源代码所需内容

2016-08-17 16:52 537 查看
用java截取网页源代码所需内容:

1、发起请求建立连接

2、获取网页源代码

3、使用正则表达式截取

以下是源码:

public static void main(String[] args) {
String jdurl = "http://item.jd.com/1856588.html";
try {
/**
* 发起请求
*/
URL url = new URL(jdurl);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");

/**
* 获取网页源代码
*/
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "gbk");
BufferedReader br = new BufferedReader(isr);

StringBuffer buffer = new StringBuffer();
String line = null;
while((line = br.readLine()) != null) {
buffer.append(line);
}
System.out.println(buffer);
br.close();
is.close();
isr.close();
conn.disconnect();

/**
* 用正则表达式截取
* <div class="sku-name">OPPO R9 4GB+64GB内存版 玫瑰金 全网通4G手机 双卡双待</div>
*/
Pattern pattern = Pattern.compile("(.*)(<div class=\"sku-name\">)(.*?)(</div>)(.*)");
Matcher matcher = pattern.matcher(buffer.toString());
System.out.println(matcher.matches());
if(matcher.matches()) {
System.out.println("手机名称:" + matcher.group(3));
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

}

备注:(.*)表示匹配所有的,默认是贪婪模式;想要最小匹配采用(.*?)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  前端