最近爱好编写一些个小偷程序,汗~~ 就是上别人网站上抓取些个数据回来进行分析筛选,总结出了几个常用的方法,希望对那些同样有此爱好的初学者有所帮助
页面抓取 最少不了的就是正则表达式,没必要死记,只要会调用就可以了,O(∩_∩)O哈哈~ 这里仅罗列几个,有的是自己写的,有的是收藏的,希望可以抛砖引玉,高人可以共享出更加好的方案
/*
*遍历字符串所有数据库生成的HTML容器(比如商品列表)
*str 要遍历的字符串
*start 共同的开始部分
*end 共同的结束部分
*返回一个ArrayList列表
*/
public static ArrayList getTables(String str,String start,String end)
{
ArrayList list=new ArrayList();
String reg="(?is)"+start+".*?"+end;
Pattern p=Pattern.compile(reg);
Matcher m=p.matcher(str);
while(m.find())
{
list.add(m.group());
}
return list;
}
/*
*获取字符串所有超链接方法
*返回超链接HashMap.Key 地址,Value 标题
*/
public static Map<String, String> getATags(String str)
{
Map<String, String> map = new HashMap<String, String>();
String regex = "(?is)<a[^>]*?href\\s*=\\s*['\"]?([^'\">]+)['\"]?[^>]*>(.+?)</a>";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
map.put(matcher.group(1), matcher.group(2));
}
return map;
}
/*
*去除HTML标签的方法
*/
public static String filterHTML(String str)
{
if (str == null || str.trim().equals("")) {
return "";
}
// 去掉所有html元素,
String result = str.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll(
"<[^>]*>", "");
result = result.replaceAll("[(/>)<]", "");
return result;
}
高手有什么好的程序赶快共享出来吧,藏着掖着又不能生孩子