`
Franciswmf
  • 浏览: 778867 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

htmlparser获取<a></a>链接地址和标题

 
阅读更多
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.PrototypicalNodeFactory;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.OrFilter;
import org.htmlparser.tags.Div;
import org.htmlparser.tags.ImageTag;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

public class OrFilterForIamgeOrLinkOrFrame {
//只能获取链接和链接标题,时间无法获取
public static void main(String[] args) throws ParserException {
getImage("http://www.ahtba.org.cn/infomation/");
}

public static void getImage(String url) throws ParserException {
Parser parser = new Parser(url);
parser.setEncoding("gbk");
PrototypicalNodeFactory pnfPrototypicalNodeFactory = new PrototypicalNodeFactory();
pnfPrototypicalNodeFactory.registerTag(new Div());
parser.setNodeFactory(pnfPrototypicalNodeFactory);

NodeFilter filter1 = new NodeClassFilter(LinkTag.class);
NodeList nodelist = parser.extractAllNodesThatMatch(filter1);
for (Node node : nodelist.toNodeArray()) { 
if (node instanceof LinkTag) {
LinkTag link = (LinkTag) node;
if (link != null) {
System.out.println("地址:" + link.getLink()+"\t标题:"+link.getLinkText());
}
}
}
}
}

//***************************************//
//同样可以获得标题、地址,但地址不够完整
    public void getHERF(String html) {  
 
        // 创建Parser对象根据传给字符串和指定的编码  
       Parser parser = Parser.createParser(html, "GBK");  
       // 创建HtmlPage对象HtmlPage(Parser parser)  
        HtmlPage page = new HtmlPage(parser);  
        try {  
            // HtmlPage extends visitor,Apply the given visitor to the current  
            // page.  
            parser.visitAllNodesWith(page);  
        } catch (ParserException e1) {  
           e1 = null;  
        }  
        // 所有的节点  
       NodeList nodelist = page.getBody();  
        // 建立一个节点filter用于过滤节点  
        NodeFilter filter = new TagNameFilter("A");  
        // 得到所有过滤后,想要的节点  
        nodelist = nodelist.extractAllNodesThatMatch(filter, true);  
       for (int i = 0; i < nodelist.size(); i++) { 
       System.out.println("\n");
            LinkTag link = (LinkTag) nodelist.elementAt(i);  
            // 链接地址  
            System.out.println(link.getAttribute("href"));  
            // 链接名称  
            System.out.println(link.getStringText());  
        }  
    }









分享到:
评论

相关推荐

    微信小程序-微信小程序渲染html

    &lt;a&gt;标签转`` HTML entities 七牛图片裁剪 自定义插件 不支持&lt;form&gt;, ,等表单元素. 使用方法 请参考pages/index目录里的文件. 拷贝html-view目录到你的项目. 在页面的js/wxml/wxss中, 引入代码: index.js // ...

    基于Java和Python的爬虫项目实战源码.zip

    链接的欢迎程度---反向链接(即指向当前URL的链接)的数量和质量决定的,定义为IB(P); 链接的重要程度---关于URL字符串的函数,仅仅考察字符串本身,比如认为".com"和"home"的URL比".cc"和"map"高,定义为IL(P); ...

    html-parser:简单HTML到JSON解析器,使用Regexp和String.indexOf

    html解析器简单HTML到JSON解析器,使用Regexp和String.indexOf安装npm install htmlstr-parser基本用法var html = "&lt;div xss=removed&gt;1&lt;p&gt;2&lt;br&gt;&lt;a href='http://www.baidu.com'&gt;3&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2&lt;/p&gt;&lt;/div&gt;"htmlParser ...

    微信小程序-微信小程序html转wxml

    innerHTML: html2json('&lt;div&gt;a&lt;span&gt;b&lt;/span&gt;&lt;/div&gt;&lt;p&gt;c&lt;/p&gt;'/*需要转的html*/).child }, ... }); wxss: @import "../src/html2wxml.wxss";//按实际工程目录结构 TIP: 在example.wxss中,可自定义添加修改html...

    domhandler:htmlparser2的处理程序,用于获取DOM

    const handler = new DomHandler ( [ &lt; func&gt; callback(err, dom), ] [ &lt; obj&gt; options ]); // const parser = new Parser(handler[, options]); 可用选项如下所述。 例子 const { Parser } = require ( ...

    htmlParser:简单的 JavaScript HTML 解析器

    parse ( '&lt;p class=test&gt;&lt;a&gt;tag&lt;br&gt;!&lt;/&gt;' ) ; // now throw it at a selector engine*: $ ( dom ) . query ( 'p.test &gt; a br' ) ; * 针对的测试(巧合的是,它使用 htmlParser 为其文档增添趣味) 执照 麻省...

    htmlparser1_6

    htmlparser 爬虫(带例子TestParser)&lt;br&gt; 不要数据库操作可以代码注释,经过测试()绝对可以用&lt;br&gt;例子功能:&lt;br&gt;1.抓取网址下所有链接(根据一定规则过滤)&lt;br&gt;2.得到根网页下指定节点的内容(例子是得到div下的...

    lpeg-grammars:LPEG 词法分析器的一组语法

    LPEG 语法 ... 依赖关系 Lua 5.1.x 或 LuaJIT 2.0.x+ LPEG 库 用法 ... local htmlParser = require ' ...&lt;/h1&gt;&lt;br&gt; &lt;/body&gt; &lt;/html&gt; ]] ) 验证 HTML 文档 local validator = require ' validator ' loca

    HTMLParser-2.0-SNAPSHOT-bin.zip JAVA html解析库

    //获取子链接,url为网页url,filter是链接过滤器,返回该页面子链接的HashSet public static Set&lt;String&gt; extracLinks(String url, LinkFilter filter) { Set&lt;String&gt; links = new HashSet&lt;String&gt;(); try...

    javajsp中使用HTMLParser

    javajsp中使用HTMLParser&lt;br&gt;htmlparser用于 对html页面进行解析,它是一个功能比较强大的工具。

    DIHtmlParser v7.9.0 for D10.1 Berlin

    Scripts: DIHtmlParser returns the contents between the &lt;SCRIPT&gt; and &lt;/SCRIPT&gt; tags as simple text. The surrounding HTML tags are reported separately. Styles: DIHtmlParser returns the contents between ...

    htmlparser

    META-INF/maven/org.htmlparser/htmlparser/pom.properties META-INF/maven/org.htmlparser/htmlparser/pom.xml org.htmlparser.Parser.class org.htmlparser.PrototypicalNodeFactory.class org.htmlparser.beans....

    dr-sax:HTML到Markdown转换器,它使用基于sax的解析器(htmlparser2)

    萨克斯博士 Dr.... (SAX到MD。SAXMD或DR SAX?获取它吗?!) 它提供了用于将HTML转换为降价的标准(非流式)和转换流接口。... You should &lt;a&gt;submit it to yahoo!&lt;/a&gt;' ) ; "\n\nWow, this is an **awesome** H

    文盲版C#样式选择器(c#源码)

    /// a&gt;b /// a+b /// :first-of-type /// :eq(n) /// :contains(val) /// [att=val] /// [att!=val] /// [att~=val] /// [att*=val] /// [att|=val] /// [att^=val] /// [att$=val]

    c#版htmlparser htmlparser.dll htmlparser源代码

    c#版htmlparser htmlparser.dll htmlparser源代码

    HtmlParser

    htmlparser网络爬虫技术,通过关键字查询快速查找指定网站

    HTMLParser.net源代码HTMLParser.net使用demo

    HTMLParser.net源代码HTMLParser.net使用demo

    htmlparser库与教程

    htmlparser.jar htmlparser教程

Global site tag (gtag.js) - Google Analytics