sam*_*nta 17
下载java文件作为纯文本/ html传递它通过Jsoup或html清理器两者是相似的,可用于解析甚至格式错误的HTML 4.0语法然后你可以使用流行的HTML DOM解析方法,如getElementsByName("a")或在jsoup它甚至很酷,你可以简单地使用
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
Elements links = doc.select("a[href]"); // a with href
Elements pngs = doc.select("img[src$=.png]");
// img with src ending .png
Element masthead = doc.select("div.masthead").first();
Run Code Online (Sandbox Code Playgroud)
并找到所有链接,然后使用detials
String linkhref=links.attr("href");
Run Code Online (Sandbox Code Playgroud)
取自http://jsoup.org/cookbook/extracting-data/selector-syntax
选择器具有相同的语法,jQuery就像你知道jQuery函数链接然后你一定会喜欢它.
编辑:如果你想要更多的教程,你可以试试这个由mkyong制作的.
http://www.mkyong.com/java/jsoup-html-parser-hello-world-examples/
使用正则表达式和相应的类或使用HTML解析器.您要使用哪一个取决于您是希望能够处理整个网络还是仅仅是您知道布局以及可以测试的几个特定页面.
一个匹配99%页面的简单正则表达式可能是这样的:
// The HTML page as a String
String HTMLPage;
Pattern linkPattern = Pattern.compile("(<a[^>]+>.+?<\/a>)", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
Matcher pageMatcher = linkPattern.matcher(HTMLPage);
ArrayList<String> links = new ArrayList<String>();
while(pageMatcher.find()){
links.add(pageMatcher.group());
}
// links ArrayList now contains all links in the page as a HTML tag
// i.e. <a att1="val1" ...>Text inside tag</a>
Run Code Online (Sandbox Code Playgroud)
你可以编辑它以匹配更多,更符合标准等等,但在这种情况下你需要一个真正的解析器.如果你只对href =""及其间的文字感兴趣,你也可以使用这个正则表达式:
Pattern linkPattern = Pattern.compile("<a[^>]+href=[\"']?([\"'>]+)[\"']?[^>]*>(.+?)<\/a>", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
Run Code Online (Sandbox Code Playgroud)
并使用.group(1)和文本部分访问链接部分.group(2)
| 归档时间: |
|
| 查看次数: |
48489 次 |
| 最近记录: |