我正在进行网页抓取。并使用webharvest抓取网址。
为此我实现了以下。但我在向db写入数据时失败了。请建议我在哪里做错了。
<file action="write" path="reports/catalog.xml" charset="UTF-8">
<template><![CDATA[ <catalog time="${sys.datetime("dd.MM.yyyy, HH:mm:ss")}"> ]]></template>
<loop item="item" index="i">
<list><var name="products"/></list>
<body>
<xquery>
<xq-param name="doc">
<html-to-xml>
<http url="${siteUrl}"/>
</html-to-xml>
</xq-param>
<xq-param name="item" type="node()"><var name="item"/></xq-param>
<xq-expression>
declare variable $item as node() external;
declare variable $doc as node() external;
let $pname := data($doc//*[@class='P_TITLE'])
let $dealer := data($doc//*[@class='P_BOX_INNER'])
<database connection="jdbc:oracle:thin:@127.0.0.1:1521:xe"
jdbcclass="oracle.jdbc.driver.OracleDriver"
username="crawl"
password="crawl">
<template>
insert into priceradar (title,dealer)
values ('$pname','$dealer')
</template>
</database>
<![CDATA[
return
<product>
<title>{normalize-space($pname)}</title>
<dealer>{normalize-space($dealer)}</dealer>
</product>
]]></xq-expression>
</xquery>
</body>
</loop>
</file>
以下几行给我错误的结果。它不是拧取值,而是将变量名称写入数据库。
<template>
insert into priceradar (title,dealer)
values ('$pname','$pname')
</template>
请帮我找出我的错误.... :-(