`
diddyrock
  • 浏览: 46321 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多
xml 的属性必须有属性值,且属性必须用引号括起来
在xml中可以不考虑使用属性,完全使用元素
<![CDTA[包含特殊字符恶不需要解释为标记]]>

分析与处理html其实还好,java中的sax与dom实现可以很好的完成对标准html文件的解析
所以首先第一步就是利用第三方的能够容错的处理程序把需要分析的html程序先进行纠错分析,比如用neko的documentFragment,然后转化之后再进行处理分析

HTML <base> 标签
定义和用法
base 元素可规定页面中所有链接的基准 URL。
通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。

解析器如果要解析外链,必须首先解析出baseTag的值,这一点很重要
Q: How does a link change?
A: Any link that a user can create on your site automatically gets a new "nofollow" attribute. So if a blog spammer previously added a comment like
Visit my <a href="http://www.example.com/">discount pharmaceuticals</a> site.
That comment would be transformed to
Visit my <a href="http://www.example.com/" rel="nofollow">discount pharmaceuticals</a> site.
rel="nofollow"可以帮助爬虫避开spam,所以这里需要看是否有此属性
methord="post"说明此链接是write形式,无需爬行

linkParams.clear();
    linkParams.put("a", new LinkParams("a", "href", 1));
    linkParams.put("area", new LinkParams("area", "href", 0));
    if (conf.getBoolean("parser.html.form.use_action", false)) {
      linkParams.put("form", new LinkParams("form", "action", 1));
    }
    linkParams.put("frame", new LinkParams("frame", "src", 0));
    linkParams.put("iframe", new LinkParams("iframe", "src", 0));
    linkParams.put("script", new LinkParams("script", "src", 0));
    linkParams.put("link", new LinkParams("link", "href", 0));
    linkParams.put("img", new LinkParams("img", "src", 0));

只有以上几种类型包含有链接,其余的类型就不加处理

for (int i= 0; i < attrs.getLength(); i++ ) {
            Node attr = attrs.item(i);
            String attrName = attr.getNodeName();
            if (params.attrName.equalsIgnoreCase(attrName)) {
              target = attr.getNodeValue();
            } else if ("rel".equalsIgnoreCase(attrName) &&
                       "nofollow".equalsIgnoreCase(attr.getNodeValue())) {
              noFollow = true;
            } else if ("method".equalsIgnoreCase(attrName) &&
                       "post".equalsIgnoreCase(attr.getNodeValue())) {
              post = true;
            }
          }
          if (target != null && !noFollow && !post)
            try {
             
              URL url = (base.toString().indexOf(';') > 0) ?
                fixEmbeddedParams(base, target) :  new URL(base, target);
              outlinks.add(new Outlink(url.toString(),
                                       linkText.toString().trim(), conf));
            } catch (MalformedURLException e) {
              // don't care
            }所谓的target就是指src=,href=,action,等等
分享到:
评论

相关推荐

    xmlhtml帮助文件下载

    XML(eXtensible Markup Language)和HTML(HyperText Markup ...XMLHTML帮助文件下载可能涵盖了如何在HTML环境中使用XML进行数据传输和页面动态更新的实践指导,对于Web开发者来说,理解并掌握这些知识至关重要。

    rtf to xml html

    标题中的“rtf to xml html”指的是将RTF(Rich Text Format)文件转换为XML(Extensible Markup Language)和HTML(Hypertext Markup Language)格式的过程。RTF是一种由Microsoft开发的文档格式,用于跨平台和跨...

    XML源程序.rar_xml html_xmlsource

    在"XML源程序.rar_xml html_xmlsource"这个压缩包中,我们可以看到两个主要的元素:www.pudn.com.txt和"XML源程序",这可能是XML文件或关于XML编程的文本资源。 首先,www.pudn.com.txt可能是一个链接到资源的文本...

    XML HTML CSS XSL Web编程实作教程

    XML(可扩展标记语言,eXtensible Markup Language)、HTML(超文本标记语言,HyperText Markup Language)、CSS(层叠样式表,Cascading Style Sheets)以及XSL(可扩展样式表语言,eXtensible Stylesheet Language...

    xml-html.rar_ c++ xml html_html to xml_html xml_xml_xml html

    在IT领域,XML(可扩展标记语言)和HTML(超文本标记语言)是两种非常重要的标记语言,分别用于数据存储和网页展示。本资源“xml-html.rar”包含了一个C++项目,其目的是实现XML到HTML的转换。这个转换过程对于数据...

    网页设计HTML XML CSS

    HTML(HyperText Markup Language)、XML(eXtensible Markup Language)以及CSS(Cascading Style Sheets)是构建和呈现网页内容的基础工具,而XHTML(Extensible HyperText Markup Language)则是HTML与XML的融合...

    XML系列文档 XML HTML JavaScript css

    XML的设计目标是传输和存储数据,而非显示数据,因此它与HTML(超文本标记语言)在用途上有所区别。HTML主要用于网页的呈现,而XML则用于数据的组织和交换。 XML的语法规范严谨,每个元素都必须有闭合的开始标签和...

    xml数据演示.rar_XML系统_xml_xml html

    标签中的“xml系统 xml xml___html”重复了XML关键词,强调了与HTML(超文本标记语言)的关系。HTML主要用于网页内容的展示,而XML则专注于数据的结构和意义。在Web开发中,两者经常结合使用,例如通过XHTML(可扩展...

    xml.rar_QT XML _linux qt xml_qt xml_qt xml html_xml测试

    当我们提到QT、XML和HTML的结合,可能是在构建Web应用程序或者需要在本地应用中渲染HTML内容时。QT的QWebEngineView组件允许加载和显示HTML,而XML可以作为数据源为HTML提供动态内容。例如,你可以使用...

    python xml html 解析工具(代码)

    python处理xml很实用好用的工具 主要有BeautifulSoup和BeautifulStoneSoup,import就好,前者处理html,后者处理xml 具体使用方法可以上网查

    Xml_Json_Html美化格式化工具_V4.2_源码_纯净版

    Xml、Json和Html是数据交换和网页展示中常见的三种格式,它们在开发过程中扮演着重要角色。本资源提供的是一个名为"Xml_Json_Html美化格式化工具_V4.2"的源码纯净版,主要功能是将这三种格式的数据进行美化和格式化...

    xmlhtml:具有HTML 5怪癖模式的XML解析器和渲染器

    在`xmlhtml-master`这个压缩包中,可能包含的是`xmlhtml`项目的源代码、示例、测试用例以及相关的文档。如果你打算使用或研究这个库,可以从源代码了解其实现细节,通过示例来学习如何在Haskell项目中集成和使用`xml...

    kettle 解析xml xml文档,配合kettle 解析xml stax方法,完整解析案例使用

    与上一个版本一起使用可以可以起到提高效率的目的。本人解析xml的真实文档

    xml的转化成html

    XML 转换为 HTML 的知识点 XML 转换为 HTML 是一种常见的数据转换方式,通过使用 XSL(Extensible Stylesheet Language)语言,对 XML 文件进行变换,生成 HTML 文件。在本实验中,我们将学习如何使用 XSL 对 XML ...

    xml,json,html格式化工具

    XML(eXtensible Markup Language)、JSON(JavaScript Object Notation)和HTML(Hypertext Markup Language)是三种广泛使用的数据交换和表示格式。在处理这些文件时,有时我们需要将它们格式化,以便于阅读和调试...

    html转xml小工具,包括源码

    HTML到XML转换是一个常见的任务,特别是在数据处理和网页解析中。这个小工具是用C#编程语言编写的,提供了一种方便的方法将HTML文档转换为结构化的XML格式。C#,作为微软.NET框架的一部分,拥有强大的XML处理能力,...

    c#调用openxml组件对html与word进行互相转换

    总结来说,C#调用Open XML组件进行HTML与Word的转换涉及HTML解析、Open XML结构的理解、样式映射以及图像处理等多个方面。这是一个既有挑战性又实用的技术,对于提升开发者在文档处理领域的技能大有裨益。

    html转换xml代码

    ### HTML转换为XML的知识点详解 #### 一、HTML与XML的基本概念 1. **HTML (HyperText Markup Language)**:是一种用于创建网页的标准标记语言。它主要用于定义网页内容的结构和样式,通常由浏览器解析并呈现给用户...

Global site tag (gtag.js) - Google Analytics