java 正则表达式-java爬虫爬掉网易页面上的所有超链接
public class WebSpiderTest {
//获得url对应的网页源码类
public static String getURLContent(String urlStr,String charset)
{
StringBuilder sb=new StringBuilder();
try {
URL url=new URL(urlStr);
BufferedReader reader=new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName(charset)));
String temp="";
while((temp=reader.readLine())!=null)
{
sb.append(temp);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
public static List getMatcherSubstrs(String desStr,String regexStr)
{
// Pattern p =Pattern.compile(""); 获得超链接的整个内容
Pattern p=Pattern.compile(regexStr); //获得超链接中的地址
Matcher m=p.matcher(desStr);
List result=new ArrayList();
while(m.find())
{
//System.out.println(m.group());
//System.out.println(m.group(1));//取得括号内分组的内容
result.add(m.group(1));
}
return result;
}
public static void main(String[] args) {
String desStr=getURLContent("http://www.163.com","gbk");
List result=getMatcherSubstrs(desStr,"href=\"([\\w\\s./:]+?)\"");
for(String temp:result)
{
System.out.println(temp);
}
}
}
©著作权归作者所有:来自51CTO博客作者wx5d21d5e6e5ab1的原创作品,如需转载,请注明出处,否则将追究法律责任