我想从网页中抓取特定内容,为此我正在使用网络收获。当我尝试抓取内容时,它在其他网站上运行良好,但它没有抓取该 URL的内容。
我的 Java 代码在这里:
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());
}
}
}
我的 XML 在这里:
<?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>
我想抓取此 URL 的第一个块,例如候选人姓名、当前名称、公司等,但我无法通过在 XML 文件中使用其类来抓取,例如(我只尝试了一个第一次尝试抓取候选人姓名)
declare variable $doc as node() external;
let $title := data($doc//div[@class="bdrGry"]/div[@class="boxHD1"]/h1)
但它不起作用。谁能告诉我我做错了什么?