用java截取网页源代码所需内容
2016-08-17 16:52
567 查看
用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();
}
}
备注:(.*)表示匹配所有的,默认是贪婪模式;想要最小匹配采用(.*?)
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();
}
}
备注:(.*)表示匹配所有的,默认是贪婪模式;想要最小匹配采用(.*?)
相关文章推荐
- 用Java的模式匹配来提取网页中所需内容
- C# 截取所需网页上的部分内容
- 如何在网页中保持C,Java..等源代码语法着色
- 使用网页代码“截取”功能,打印页面某段定义区域内容
- java 获取网页内容
- JAVA 抓取网页内容
- Java基础:利用HttpClient获取网页内容
- JAVA常用整理(1)--通过java.net.URL类抓取某个网页的内容
- 【JAVA】 抓取网页内容
- java下载网页并读取内容
- 浅析JAVA实现网页取内容
- java调用jruby获取网页内容(JDK1.5)
- java读取网页内容
- java读取文件,写文件,读取网页内容
- 网页内容截取组件V1.0
- java 抓取 https 网页内容
- JAVA根据模板将动态内容生成静态网页的代码
- 使用网页代码“截取”功能,打印页面某段定义区域内容
- 写个java类,可以直接得到网页内容中的html源码
- 网页内容截取组件V1.0