java获取url网页指定内容
来源:互联网 发布:萤火视频桌面软件 编辑:程序博客网 时间:2024/06/06 02:41
在获取网页源代码(←获取html网页源代码请看这儿)的前提下,根据网页源代码获取指定内容
import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @use 获取指定HTML标签的相关内容 */public class GetTheSpecifyHtmlTagCode { /** * 获取指定HTML标签的代码及指定属性的值 * * @param source 要匹配的源文本 * @param element 标签名称 * @param byAttr 标签的属性名称 * @return 属性值列表 */ public static List<String> match(String source, String element, String byAttr) { List<String> result = new ArrayList<String>(); String reg = String.format("<%s[^<>]*?\\s?%s=['\"](.*?)['\"]\\s?.*?>(.*?)</%s>", element, byAttr, element); Matcher m = Pattern.compile(reg).matcher(source); while (m.find()) { String elementResult = m.group(0); String attrResult = m.group(1); result.add(elementResult + VS + attrResult); } return result; } /** * 通过属性名称获取属性值 * * @param source 要匹配的源文本 * @param element 标签名称 * @param byAttr 标签的属性名称 * @return 属性值 */ public static String getAttrValueByAttr(String source, String element, String byAttr) { String result = ""; String reg = String.format("<%s[^<>]*?\\s?%s=['\"](.*?)['\"]\\s?.*?>(.*?)</%s>", element, byAttr, element); Matcher m = Pattern.compile(reg).matcher(source); while (m.find()) { result = m.group(1); } return result; } /** * 根据指定的属性值获取指定的其他属性值 * * @param htmlCode 网页源代码 * @param element 标签名称 * @param byAttr1 指定的属性名称 * @param attrValue 指定的属性值 * @param byAttr2 指定的其他属性名称 * @return 指定的其他属性值 */ public static String getAttrValue(String htmlCode, String element, String byAttr1, String attrValue, String byAttr2) { List<String> list = match(htmlCode, element, byAttr1); String tempr = ""; for (int i = 0; i < list.size(); i++) { String tempResult = list.get(i); String[] temp = tempResult .split(VS); if (temp[1].equals(attrValue)) { tempr = getAttrValueByAttr(htmlCode, element, byAttr2); } } return tempr; } /** * 根据指定属性获取指定html标签的代码 * * @param htmlCode 网页源代码 * @param element 标签名称 * @param byAttr 属性名称 * @param attrValue 属性值 * @return 指定html标签的代码 */ public static String getElementById(String htmlCode, String element, String byAttr, String attrValue) { List<String> list = match(htmlCode, element, byAttr); String tempr = ""; for (int i = 0; i < list.size(); i++) { String tempResult = list.get(i); String[] temp = tempResult .split(VS);// System.out.println("--------> " + (i + 1) + ". " + list.get(i)); if (temp[1].equals(attrValue)) {// System.out.println("内部打印 " + temp[0]); tempr = temp[0]; } } return tempr; } /** * 获取指定标签包含的内容 * * @param htmlCode 网页源代码 * @param element 标签名称 * @param byAttr 属性 * @param attrValue 属性值 * @return 指定标签包含的内容 */ public static String getElementValueByAttr(String htmlCode, String element, String byAttr, String attrValue) { String elementCode = getElementById(htmlCode, element, byAttr, attrValue); String regTagStart = String.format("<%s[^<>]*?\\s?%s=['\"](.*?)['\"]\\s?.*?>", element,byAttr); String tagStart=""; Matcher m = Pattern.compile(regTagStart).matcher(elementCode); while (m.find()) { tagStart = m.group(0); } String regTagEnd = String.format("</%s>", element); String result = elementCode.replace(tagStart, "").replace(regTagEnd, ""); return result; } /** * 根据已有标签代码获取标签包含的内容 * * @param elementCode 标签代码 * @param element 标签名称 * @return 标签包含的内容 */ public static String getElementValueByElementCode(String elementCode, String element,String byAttr) { String regTagStart = String.format("<%s[^<>]*?\\s?%s=['\"](.*?)['\"]\\s?.*?>", element,byAttr); String tagStart=""; Matcher m = Pattern.compile(regTagStart).matcher(elementCode); while (m.find()) { tagStart = m.group(0); } String regTagEnd = String.format("</%s>", element); String result = elementCode.replace(tagStart, "").replace(regTagEnd, ""); return result; } private static String VS = "--------";//split标记自定义}
- java获取url网页指定内容
- Android获取指定URL的网页内容
- Android 获取指定url网页内容
- java-抓取指定URL网页的内容
- java读取URL指定的网页内容
- 用java 获取指定url 网站内容
- Java 从网页指定URL获取文件
- Java使用URL获取网页内容
- java通过url获取网页内容
- 使用JAVA获取指定网页内容
- 通过URL对象获取指定网页的内容
- 获取指定网页内容
- java-抓取指定URL网页的内容(二)
- Java打开网页获取数据,自动访问,打开指定URL
- C#获取网页指定内容
- java用url获取网页内容并输出到控制台
- Java 抓取网页内容,获取指定服务器IP
- Java 抓取网页内容,获取指定服务器IP
- Thinkphp学习笔记(四)CURD
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- URAL 1297 Palindrome(SA 求最长回文子串)
- linux下可执行文件的库们
- 导出文件在IE和火狐中文件名乱码问题的解决
- java获取url网页指定内容
- 如何访问局域网中的DB服务器
- 第74天的交易(2013-8-6)(-50)(-182.28)(数据单总盈利:51.35)
- Android系统信息获取 之六:网络连接状态信息获取
- 最小生成树(Kruskal算法)--poj2421
- ===《C/C++笔记》===面向对象
- 直接将XML存入到SQL中(SQL2008)
- Delphi TClientDataSet
- Thinkphp的五种查询方式