Raspar el contenido de la página web usando Web-harvest
Frecuentes
Visto 3,422 veces
0
Quiero extraer contenidos particulares de las páginas web, para esto estoy usando la cosecha web. Está funcionando bien para otro sitio web cuando traté de raspar contenido pero no está raspando contenido para esta URL.
Mi código Java está aquí:
import org.webharvest.definition.ScraperConfiguration;
import org.webharvest.runtime.Scraper;
import org.webharvest.runtime.variables.Variable;
import java.io.FileNotFoundException;
public class App
{
public static void main(String[] args)
{
try
{
ScraperConfiguration config = new ScraperConfiguration("twit88.xml");
Scraper scraper = new Scraper(config, "c:/temp/");
//scraper.getHttpClientManager().setHttpProxy("proxy-server", 8001);
scraper.addVariableToContext("url", "http://freesearch.naukri.com/preview/preview?uname=63017692f2b266780bfd20476cd67466001a4a17005b4a5355041f121b502e18514b4e4e43121c4151005&sid=73682841<=1339495252");
scraper.setDebug(true);
scraper.execute();
// takes variable created during execution
Variable article = (Variable)scraper.getContext().getVar("article");
// do something with articles...
System.out.println(article.toString());
//System.out.println("1234=====rtyu");
}
catch (FileNotFoundException e)
{
System.out.println(e.getMessage());
}
}
}
Y mi XML está aquí:
<?xml version="1.0" encoding="UTF-8"?>
<config charset="UTF-8">
<!--
<var-def name="url">http://twit88.com/blog/2008/01/02/java-encrypt-and-send-a- large-file-securely/</var-def>
-->
<!-- <file action="write" path="twit88/twit88${sys.date()}.xml" charset="UTF-8"> -->
<!--
<template>
<![CDATA[ <twit88 date="${sys.datetime("dd.MM.yyyy")}"> ]]>
</template>
-->
<var-def name="article">
<xquery>
<xq-param name="doc">
<html-to-xml outputtype="browser-compact" prunetags="yes">
<http url="${url}"/>
</html-to-xml>
</xq-param>
<xq-expression><![CDATA[
declare variable $doc as node() external;
let $title := data($doc//div[@class="bdrGry"]/div[@class="boxHD1"]/h1)
return
<article>
<title>{data($title)}</title>
</article>
]]>
</xq-expression>
</xquery>
</var-def>
<!--
<![CDATA[ </twit88> ]]> -->
<!-- </file> -->
</config>
Quiero raspar el primer bloque de esta URL, por ejemplo, el nombre del candidato, la designación actual, la empresa, etc., pero no puedo raspar usando su clase en el archivo XML, por ejemplo (probé solo uno para el primer intento de raspar solo el nombre del candidato)
declare variable $doc as node() external;
let $title := data($doc//div[@class="bdrGry"]/div[@class="boxHD1"]/h1)
Pero no está funcionando. ¿Alguien puede decirme qué estoy haciendo mal?
1 Respuestas
3
..no está raspando contenidos para esta URL.
Desde el Términos & condiciones de Naukri.com:
Naukri.com utiliza medios tecnológicos para impedir que Robots, etc. rastreen el sitio web y raspado de contenido. El usuario se compromete no eludir estos métodos.
Respondido el 12 de junio de 12 a las 12:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java html web-scraping webharvest or haz tu propia pregunta.
Aparte, es 'scrape' o 'scraping', a diferencia de 'scrap' scraps' o 'scrapping'. Es posible que haya recogido algunas pistas del código que se ve arriba. - Andrew Thompson
gracias por corregirme.Pero cual es la solucion de esto? - kailash gaur
¿La ortografía? Una edición (que ya he hecho). Eso y prestar más atención/usar más cuidado al escribir preguntas en el futuro. - Andrew Thompson