Hi Jorge and Yossi, The reason why I am trying to do it is exactly what yossi said "removing nutch overhead", I didn't thought that it would be that complicated, All I am trying is to call the existing parsers from my own parser, but I am not able to do it correctly, may be chain approach is a better idea to do that but *do parse filter receives any DOM object?* as a parameter so by accessing that I can extract the data I want??
On Wed, Mar 14, 2018 at 7:36 PM, Yossi Tamari <yossi.tam...@pipl.com> wrote: > There is no built-in mechanism for this. However, are you sure you really > want a parser for each website, rather than a parse-filter for each website > (which will take the results of the HTML parser and apply some domain > specific customizations)? > In both cases you can use a dispatcher approach, which your custom parser > is, or a chain approach (every parser that is not intended for this domain > returns null, or each parse-filter that is not intended for this domain > returns the ParseResult that it received). > The advantage of the chain approach is that each new website parser is a > first-class, reusable Nutch object. The advantage of the dispatcher > approach is that you don't need to deal with a lot of the Nutch overhead, > but it is more monolithic (You can end up with one huge plugin that needs > to be constantly modified whenever one of the websites is modified). > > > -----Original Message----- > > From: Yash Thenuan Thenuan <rit2014...@iiita.ac.in> > > Sent: 14 March 2018 15:28 > > To: user@nutch.apache.org > > Subject: Re: RE: Dependency between plugins > > > > Is there a way in nutch by which we can use different parser for > different > > websites? > > I am trying to do this by writing a custom parser which will call > different parsers > > for different websites? > > > > On 14 Mar 2018 14:19, "Semyon Semyonov" <semyon.semyo...@mail.com> > > wrote: > > > > > As a side note, > > > > > > I had to implement my own parser with extra functionality, simple > > > copy/past of the code of HTMLparser did the job. > > > > > > If you want to inherit instead of copy paste it can be a bad idea at > all. > > > HTML parser is a concrete non abstract class, therefore the > > > inheritance will not be so smooth as in case of contract > > > implementations(the plugins are contracts, ie interfaces) and can > easily break > > some OOP rules. > > > > > > > > > Sent: Wednesday, March 14, 2018 at 9:18 AM > > > From: "Yossi Tamari" <yossi.tam...@pipl.com> > > > To: user@nutch.apache.org > > > Subject: RE: Dependency between plugins One suggestion I can make is > > > to ensure that the html-parse plugin is built before your plugin > > > (since you are including the jars that are generated in its build). > > > > > > > -----Original Message----- > > > > From: Yash Thenuan Thenuan <rit2014...@iiita.ac.in> > > > > Sent: 14 March 2018 09:55 > > > > To: user@nutch.apache.org > > > > Subject: Re: Dependency between plugins > > > > > > > > Hi, > > > > It didn't worked in ant runtime. > > > > I included "import org.apache.nutch.parse.html;" in my custom parser > > > code. > > > > but it is throwing errror while i am doing ant runtime. > > > > > > > > [javac] > > > > /Users/yasht/Downloads/apache-nutch-1.14/src/plugin/parse- > > > > custom/src/java/org/apache/nutch/parse/custom/CustomParser.java:41: > > > > error: cannot find symbol > > > > > > > > [javac] import org.apache.nutch.parse.html; > > > > > > > > [javac] ^ > > > > > > > > [javac] symbol: class html > > > > > > > > [javac] location: package org.apache.nutch.parse > > > > > > > > > > > > below are the xml files of my parser > > > > > > > > > > > > My ivy.xml > > > > > > > > > > > > <ivy-module version="1.0"> > > > > > > > > <info organisation="org.apache.nutch" module="${ant.project.name}"> > > > > > > > > <license name="Apache 2.0"/> > > > > > > > > <ivyauthor name="Apache Nutch Team" url="http://nutch.apache.org"/> > > > > > > > > <description> > > > > > > > > Apache Nutch > > > > > > > > </description> > > > > > > > > </info> > > > > > > > > > > > > <configurations> > > > > > > > > <include file="../../../ivy/ivy-configurations.xml"/> > > > > > > > > </configurations> > > > > > > > > > > > > <publications> > > > > > > > > <!--get the artifact from our module name--> > > > > > > > > <artifact conf="master"/> > > > > > > > > </publications> > > > > > > > > </ivy-module> > > > > > > > > build.xml > > > > > > > > <project name="parse-custom" default="jar-core"> > > > > > > > > <import file="../build-plugin.xml"/> > > > > > > > > <!-- Build compilation dependencies --> <target name="deps-jar"> > > > > <ant target="compile-test" inheritall="false" dir="../parse-html"/> > > > > </target> > > > > > > > > > > > > <path id="plugin.deps"> > > > > <fileset dir="${nutch.root}/build"> > > > > <include name="**/parse-html/*.jar" /> </fileset> </path> > > > > > > > > <!-- Deploy Unit test dependencies --> <target name="deps-test"> > > > > <ant target="deploy" inheritall="false" dir="../parse-html"/> <ant > > > > target="deploy" inheritall="false" dir="../nutch-extensionpoints"/> > > > > </target> > > > > > > > > </project> > > > > > > > > plugin.xml > > > > > > > > <plugin > > > > id="parse-custom" > > > > name="Custom Parse Plug-in" > > > > version="1.0.0" > > > > provider-name="nutch.org"> > > > > > > > > <runtime> > > > > <library name="parse-custom.jar"> > > > > <export name="*"/> > > > > </library> > > > > </runtime> > > > > > > > > <requires> > > > > <import plugin="parse-html"/> > > > > <import plugin="nutch-extensionpoints"/> </requires> <extension > > > > id="org.apache.nutch.parse.custom" > > > > name="CustomParse" > > > > point="org.apache.nutch.parse.Parser"> > > > > > > > > <implementation id="org.apache.nutch.parse.custom.CustomParser" > > > > class="org.apache.nutch.parse.custom.CustomParser"> > > > > <parameter name="contentType" > > > > value="text/html|application/xhtml+xml"/> > > > > <parameter name="pathSuffix" value=""/> </implementation> > > > > > > > > </extension> > > > > > > > > </plugin> > > > > > > > > > > > > > > > > > > > > On Wed, Mar 14, 2018 at 1:02 PM, Yossi Tamari > > > > <yossi.tam...@pipl.com> > > > > wrote: > > > > > > > > > Hi Yash, > > > > > > > > > > I don't know how to do it, I never tried, but if I had to it would > > > > > be a trial and error thing.... > > > > > > > > > > If you want to increase the chances that someone will answer your > > > > > question, I suggest you provide as much information as possible: > > > > > Where did it not work? In "ant runtime", or when running in Hadoop? > > > > > What was the error message? > > > > > What is the content of your build.xml, plugin.xml, and ivy.xml? > > > > > Is parse-html configured in your plugin-includes? > > > > > > > > > > If it's a problem during execution, I would suggest looking at or > > > > > debugging the code of PluginClassLoader. > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > From: Yash Thenuan Thenuan <rit2014...@iiita.ac.in> > > > > > > Sent: 14 March 2018 08:34 > > > > > > To: user@nutch.apache.org > > > > > > Subject: Re: Dependency between plugins > > > > > > > > > > > > Anybody please help me out regarding this. > > > > > > > > > > > > On Tue, Mar 13, 2018 at 6:51 PM, Yash Thenuan Thenuan < > > > > > > rit2014...@iiita.ac.in> wrote: > > > > > > > > > > > > > I am trying to import Htmlparser in my custom parser. > > > > > > > I did it in the same way by which Htmlparser imports > > > > > > > lib-nekohtml but it didn't worked. > > > > > > > Can anybody please tell me how to do it? > > > > > > > > > > > > > > > > > > > > > > > > >