如何使用 nutch 插件解析位于特定 HTML 标签中的内容? [英] How to parse content located in specific HTML tags using nutch plugin?

查看:31
本文介绍了如何使用 nutch 插件解析位于特定 HTML 标签中的内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Nutch 抓取网站,我想解析 Nutch 抓取的 html 页面的特定部分.例如,

 要搜索的标题</title></h><div id="abc">要搜索的内容</div><p><div class="efg">要搜索的其他内容</div><p></code></pre><p>我想解析 id ="abc" 和 class="efg" 等的 div 元素.</p><p>我知道我必须创建一个插件来自定义解析,因为 Nutch 提供的 htmlparser 插件会删除所有 html 标签、css 和 javascript 内容,只留下文本内容.我参考了这个博客 <a href="http://sujitpal.blogspot.in/2009/07/nutch-custom-plugin-to-parse-and-add.html" rel="noreferrer">http://sujitpal.blogspot.in/2009/07/nutch-custom-plugin-to-parse-and-add.html</a> 但我发现这是用于解析 html 标签,而我想解析具有属性的 html 标签具体值.我发现有人提到 Jericho 对解析特定的 html 标签很有用,但我可以找到任何与 Jericho 相关的 nutch 插件示例.</p><p>我需要一些关于如何设计基于具有特定值的属性的标签解析 html 页面的策略的指导.</p><div class="h2_lin"> 解决方案 </div><p>您可以使用此插件根据 css 规则从页面中提取数据:</p><p><a href="https://github.com/BayanGroup/nutch-custom-search" rel="noreferrer">https://github.com/BayanGroup/nutch-custom-search</a></p><p>在你的例子中,你可以这样配置:</p><pre><code><config><字段><field name="custom_content"/></fields><文件><document url=".+" engine="css"><extract-to field="custom_content"><文本><expr value="#abc"/></text><文本><expr value=".efg"/></text></extract-to></文档></文件></config></code></pre><p><p>I am using Nutch to crawl websites and I want to parse specific sections of html pages crawled by Nutch. For example,</p><pre><code>  <h><title> title to search </title></h>
   <div id="abc">
        content to search
   </div>
   <div class="efg">
        other content to search
   </div>
</code></pre><p>I want to parse div element with id ="abc" and class="efg" and so on. </p>

<p>I know that I have to create a plugin for customized parsing as htmlparser plugin provided by Nutch removes all html tags, css and javascript content and leaves only text content. I refered to this blog <a href="http://sujitpal.blogspot.in/2009/07/nutch-custom-plugin-to-parse-and-add.html" rel="noreferrer">http://sujitpal.blogspot.in/2009/07/nutch-custom-plugin-to-parse-and-add.html</a> but I found that this is for parsing with html tag whereas I want to parse html tags with attribute having specific value. I found that Jericho has been mentioned as useful for parsing specific html tags but I could find any example for nutch plugin associated with Jericho.</p>

<p>I need some guidance about how to devise a strategy for parsing html pages on the basis of tags with attribute having specific value.</p><div class="h2_lin"> 解决方案 </div><p>You can use this plugin to extract data from your pages based on css rules:</p>

<p><a href="https://github.com/BayanGroup/nutch-custom-search" rel="noreferrer">https://github.com/BayanGroup/nutch-custom-search</a></p>

<p>In your example, you can configure it in this way:</p><pre><code><config>
    <fields>
        <field name="custom_content" />
    </fields>
    <documents>
        <document url=".+" engine="css">
            <extract-to field="custom_content">
                <text>
                    <expr value="#abc" />
                </text>
                <text>
                    <expr value=".efg" />
                </text>
            </extract-to>
        </document>
    </documents>
</config>
</code></pre><p>

                        <p>这篇关于如何使用 nutch 插件解析位于特定 HTML 标签中的内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!</p>
                        
                    </div>
                    <div class="arc-body-main-more">
                        <span onclick="unlockarc('2321197');">查看全文</span>
                    </div>
                </div>
				<div>
                            
                        </div>
                <div class="wwads-cn wwads-horizontal" data-id="166" style="max-width:100%;border: 4px solid #666;"></div>
            </div>
        </article>
        <div id="arc-ad-2" class="mb-1">
            <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5038752844014834"
     data-ad-slot="3921941283"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

        </div>
        <div class="widget bgwhite radius-1 mb-1 shadow widget-rel">
            <h5>相关文章</h5>
            <ul>
                    <li>
                        <a target="_blank" title="如何使用 nutch 解析 html 并将特定标签索引到 solr?" href="/2619824.html">
                            如何使用 nutch 解析 html 并将特定标签索引到 solr?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何使用nutch和索引特定标签解析html到solr?" href="/2556194.html">
                            如何使用nutch和索引特定标签解析html到solr?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何从 nutch 获取 html 内容" href="/2321182.html">
                            如何从 nutch 获取 html 内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何阅读使用Firefox插件的特定网址的HTML内容?" href="/763028.html">
                            如何阅读使用Firefox插件的特定网址的HTML内容?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何从 nutch 中的特定标签中选择数据" href="/2321206.html">
                            如何从 nutch 中的特定标签中选择数据;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="使用 HtmlAgillityPack 解析 HTML 阅读选项标签内容" href="/2689103.html">
                            使用 HtmlAgillityPack 解析 HTML 阅读选项标签内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="使用HtmlAgillityPack解析HTML阅读选项标签内容" href="/862372.html">
                            使用HtmlAgillityPack解析HTML阅读选项标签内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何阅读Java / Scala中的Nutch内容?" href="/844610.html">
                            如何阅读Java / Scala中的Nutch内容?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何使用 CURL 解析 html 文件中的内容?" href="/2680257.html">
                            如何使用 CURL 解析 html 文件中的内容?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何使标签加载内容位于网站上?" href="/2869608.html">
                            如何使标签加载内容位于网站上?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何使用SAX解析器解析Android中的HTML内容" href="/121119.html">
                            如何使用SAX解析器解析Android中的HTML内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何使用grep匹配具有属性的HTML特定标签之间的内容?" href="/2776389.html">
                            如何使用grep匹配具有属性的HTML特定标签之间的内容?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="使用Jsoup解析Html内容" href="/867138.html">
                            使用Jsoup解析Html内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="使用 BeautifulSoup 解析 HTML 标签时,HTML 标签显示为空,但在浏览器中打开时有内容" href="/2708927.html">
                            使用 BeautifulSoup 解析 HTML 标签时,HTML 标签显示为空,但在浏览器中打开时有内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何使用 Apache Nutch 保存原始 html 文件" href="/2321183.html">
                            如何使用 Apache Nutch 保存原始 html 文件;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="解析VBA中的HTML内容" href="/739863.html">
                            解析VBA中的HTML内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="解析 HTML 中的相关标签" href="/2340828.html">
                            解析 HTML 中的相关标签;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="vaadin 标签中的 Html 内容" href="/2462049.html">
                            vaadin 标签中的 Html 内容;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何获得文字和使用Jericho HTML解析器的特定标签之间的其他标签?" href="/996643.html">
                            如何获得文字和使用Jericho HTML解析器的特定标签之间的其他标签?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何更改Java中的HTML标签内容?" href="/869902.html">
                            如何更改Java中的HTML标签内容?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="HTML标签解析" href="/621973.html">
                            HTML标签解析;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="HTML 标签解析" href="/2668175.html">
                            HTML 标签解析;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何检查特定的html标签?" href="/1198140.html">
                            如何检查特定的html标签?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="Nutch 原始 Html 保存" href="/2321202.html">
                            Nutch 原始 Html 保存;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何访问“嵌入"的内容HTML 中的标签" href="/2681148.html">
                            如何访问“嵌入"的内容HTML 中的标签;
                        </a>
                    </li>
            </ul>
        </div>
        <div class="mb-1">
            <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5038752844014834"
     data-ad-slot="3921941283"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

        </div>
    </div>
    <div class="side">
        <div class="widget widget-side bgwhite mb-1 shadow">
            <h5>其他开发最新文章</h5>
            <ul>
                    <li>
                        <a target="_blank" title="拒绝显示一个框架,因为它将'X-Frame-Options'设置为'sameorigin'" href="/893060.html">
                            拒绝显示一个框架,因为它将'X-Frame-Options'设置为'sameorigin';
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="什么是&QUOT; AW&QUOT;在部分标志属性是什么意思?" href="/303988.html">
                            什么是&QUOT; AW&QUOT;在部分标志属性是什么意思?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="在运行npm install命令时获取'npm WARN弃用'警告" href="/840917.html">
                            在运行npm install命令时获取'npm WARN弃用'警告;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="cmake无法找到openssl" href="/516280.html">
                            cmake无法找到openssl;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="从Spark的scala中的* .tar.gz压缩文件中读取HDF5文件" href="/850628.html">
                            从Spark的scala中的* .tar.gz压缩文件中读取HDF5文件;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="Twitter :: Error :: Forbidden  - 无法验证您的凭据" href="/630061.html">
                            Twitter :: Error :: Forbidden  - 无法验证您的凭据;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="我什么时候需要一个fb:app_id或者fb:admins?" href="/747981.html">
                            我什么时候需要一个fb:app_id或者fb:admins?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="将.db文件导入R" href="/902960.html">
                            将.db文件导入R;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="npm通知创建一个lockfile作为package-lock.json。你应该提交这个文件" href="/744854.html">
                            npm通知创建一个lockfile作为package-lock.json。你应该提交这个文件;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'”" href="/819167.html">
                            拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'”;
                        </a>
                    </li>
            </ul>
        </div>
        <div class="widget widget-side bgwhite mb-1 shadow">
            <h5>
                热门教程
            </h5>
            <ul>
                <li>
                    <a target="_blank" title="Java教程" href="/OnLineTutorial/java/index.html">
                        Java教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Apache ANT 教程" href="/OnLineTutorial/ant/index.html">
                        Apache ANT 教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Kali Linux教程" href="/OnLineTutorial/kali_linux/index.html">
                        Kali Linux教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="JavaScript教程" href="/OnLineTutorial/javascript/index.html">
                        JavaScript教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="JavaFx教程" href="/OnLineTutorial/javafx/index.html">
                        JavaFx教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="MFC 教程" href="/OnLineTutorial/mfc/index.html">
                        MFC 教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Apache HTTP客户端教程" href="/OnLineTutorial/apache_httpclient/index.html">
                        Apache HTTP客户端教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Microsoft Visio 教程" href="/OnLineTutorial/microsoft_visio/index.html">
                        Microsoft Visio 教程
                    </a>
                </li>
            </ul>
        </div>
        <div class="widget widget-side bgwhite mb-1 shadow">
            <h5>
                热门工具
            </h5>
            <ul>
                
                <li>
                    <a target="_blank" title="Java 在线工具" href="/Onlinetools/details/4">
                        Java 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="C(GCC) 在线工具" href="/Onlinetools/details/6">
                        C(GCC) 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="PHP 在线工具" href="/Onlinetools/details/8">
                        PHP 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="C# 在线工具" href="/Onlinetools/details/1">
                        C# 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Python 在线工具" href="/Onlinetools/details/5">
                        Python 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="MySQL 在线工具" href="/Onlinetools/Dbdetails/33">
                        MySQL 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="VB.NET 在线工具" href="/Onlinetools/details/2">
                        VB.NET 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Lua 在线工具" href="/Onlinetools/details/14">
                        Lua 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Oracle 在线工具" href="/Onlinetools/Dbdetails/35">
                        Oracle 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="C++(GCC) 在线工具" href="/Onlinetools/details/7">
                        C++(GCC) 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Go 在线工具" href="/Onlinetools/details/20">
                        Go 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Fortran 在线工具" href="/Onlinetools/details/45">
                        Fortran 在线工具
                    </a>
                </li>
            </ul>
        </div>
        
    </div>
</div>
<script type="text/javascript">var eskeys = '如何,使用,nutch,插件,解析,位于,特定,html,标签,中,的,内容'; var cat = 'cc';';//other-dev</script>
    </div>
<div id="pop" onclick="pophide();">
    <div id="pop_body" onclick="event.stopPropagation();">
        <h6 class="flex flex101">
            登录
            <span onclick="pophide();">关闭</span>
        </h6>
        <div class="pd-1">
            <div class="wxtip center">
                <span>扫码关注<em>1秒</em>登录</span>
            </div>
            <div class="center">
                <img id="qr" src="https://huajiakeji.com/Content/Images/qrydx.jpg" alt="" style="width:150px;height:150px;" />
            </div>
            <div style="margin-top:10px;display:flex;justify-content: center;">
                <input type="text" placeholder="输入验证码" id="txtcode" autocomplete="off" />
                <input id="btngo" type="button" onclick="chk()" value="GO" />
            </div>
            <div class="center" style="margin: 4px; font-size: .8rem; color: #f60;">
                发送“验证码”获取
                <em style="padding: 0 .5rem;">|</em>
                <span style="color: #01a05c;">15天全站免登陆</span>
            </div>
            <div id="chkinfo" class="tip"></div>
        </div>
    </div>
</div>    <script type="text/javascript" src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/highlight.min.js"></script>
<script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/base.js?v=0.22"></script>
<script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/tui.js?v=0.11"></script>
<footer class="footer">
    <div class="container">
		<div class="flink mb-1">
			友情链接:
            <a href="https://www.it1352.com/" target="_blank">IT屋</a>
            <a href="https://huajiakeji.com/" target="_blank">Chrome插件</a>
            <a href="https://www.cnplugins.com/" target="_blank">谷歌浏览器插件</a>
        </div>
        <section class="copyright-section">
            <a href="https://www.it1352.com" title="IT屋-程序员软件开发技术分享社区">IT屋</a>
            ©2016-2022 <a href="http://www.beian.miit.gov.cn/" target="_blank">琼ICP备2021000895号-1</a>
            <a href="/sitemap.html" target="_blank" title="站点地图">站点地图</a>
            <a href="/Home/Tags" target="_blank" title="站点标签">站点标签</a>
            <a target="_blank" alt="sitemap" href="/sitemap.xml">SiteMap</a>
            <a href="/1155981.html" title="IT屋-免责申明"><免责申明></a>
            本站内容来源互联网,如果侵犯您的权益请联系我们删除.
        </section>
        
<!--统计代码-->
<script type="text/javascript">
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?0c3a090f7b3c4ad458ac1296cb5cc779";
      var s = document.getElementsByTagName("script")[0]; 
      s.parentNode.insertBefore(hm, s);
    })();
</script>
<script type="text/javascript">
    (function () {
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        }
        else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>
    </div>
</footer>
</body>
</html>