// 获取一个网页上所有的链接和图片链接
public
static void extracLinks(String url) {
try {
Parser
parser = new Parser(url);
parser.setEncoding("gb2312");
//过滤
<frame> 标签的 filter,用来提取 frame 标签里的 src 属性所、表示的链接
NodeFilter frameFilter = new NodeFilter() {
public boolean
accept(Node node) {
if (node.getText().startsWith("frame
src=")) {
return true;
} else {
return false;
}
}
};
//OrFilter
来设置过滤 <a> 标签,<img> 标签和 <frame> 标签,三个标签是 or 的关系
OrFilte rorFilter = new OrFilter(new NodeClassFilter(LinkTag.class), new
NodeClassFilter(ImageTag.class));
OrFilter linkFilter = new OrFilter(orFilter, frameFilter);
//得到所有
经过过滤的标签
NodeList list =
parser.extractAllNodesThatMatch(linkFilter);
for (int i = 0; i <
list.size(); i++) {
Node tag = list.elementAt(i);
if (tag
instanceof LinkTag)//<a> 标签
{
LinkTag link =
(LinkTag) tag;
String linkUrl = link.getLink();//url
String text = link.getLinkText();//链接文字
System.out.println(linkUrl + "**********" + text);
}
else
if (tag instanceof ImageTag)//<img> 标签
{
ImageTag
image = (ImageTag) list.elementAt(i);
System.out.print(image.getImageURL() + "********");//图片地址
System.out.println(image.getText());//图片文字
}
else//<frame> 标签
{
//提取 frame 里 src 属性的链接如 <frame
src="test.html"/>
String frame = tag.getText();
int
start = frame.indexOf("src=");
frame = frame.substring(start);
int end = frame.indexOf(" ");
if (end == -1)
end = frame.indexOf(">");
frame = frame.substring(5, end -
1);
System.out.println(frame);
}
}
} catch
(ParserException e) {
e.printStackTrace();
}
}
详细解决方案
HtmlParser初始研究2
热度:264 发布时间:2012-11-19 10:18:51.0
相关解决方案
- python模块引见- HTMLParser 简单的HTML和XHTML解析器
- 利用python脚本抓取AC的代码[爬虫+HTMLParser+handle_entityref+正则表达式+模拟登陆+资料操作]
- [转][htmlparser]htmlparser应用例子(全)
- 应用 HttpClient 和 HtmlParser 实现简易爬虫
- htmlparser 除了html标签体(获取body,title纯文本)
- HtmlParser 解析搜寻页面
- 运用 HttpClient 和 HtmlParser 实现简易爬虫
- [转]org.htmlparser.util.ParserException: Error in opening a connection to *
- Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式)
- 应用 HttpClient 和 HtmlParser 实现简易爬
- HTMLParser
- htmlparser 获取页面婚配链接
- org.htmlparser.util.EncodingChangeException: character
- htmlparser 抓不到网页的内容。该如何解决
- org.htmlparser.util.ParserException: reset stream failed
- 哪位高手知道org.htmlparser.StringNode在哪个版本的jar包
- 【HtmlParser】提取网页的meta信息解决方法
- 使用ASIHTTPRequest 编译提示找不到libxml/HTMLparser.h的解决方法
- org.htmlparser.util.ParserException: Error in opening a connection to ***
- coursera-dl 报错 AttributeError (‘HTMLParser’ object has no attribute ‘unescape’)