【问题标题】:Trying to grab information in Child Link using WebHarvest尝试使用 WebHarvest 在子链接中获取信息
【发布时间】:2015-06-26 06:10:09
【问题描述】:

我想抓取每个子链接的信息,但是程序显示错误。下面是我的完整配置文件。错误是由以下原因引起的:org.xml.sax.SAXParseException;行号:6;列号:724;元素类型“t.length”必须后跟属性规范,“>”或“/>”。**

<?xml version="1.0" encoding="UTF-8"?>

<config>
    <var-def name="webpage">
        <html-to-xml>
            <http url="http://www.thestar.com.my/business/" />
        </html-to-xml>
    </var-def>

    <loop item="TheStarBiz"  index="i">
        <list>
            <xpath expression="//div[@class='nine columns mobile3']">
                <var name="webpage"></var>
            </xpath>
        </list>

        <body>
            <var-def name="title">
                <xpath expression="(//p[@class='m'])/a/text()">
                    <var name="TheStarBiz"></var>
                </xpath>
            </var-def>

            <var-def name="link">
                <xpath expression="//p[@class='m']/a/@href">
                    <var name="TheStarBiz"></var>
                </xpath>
            </var-def>



              <var-def name="new_url">
                <xquery>
                    <xq-param name="TheStarBiz"><var name="TheStarBiz"/></xq-param>
                    <xq-expression><![CDATA[
                           declare variable $TheStarBiz as node() external; 
                            let $url := data($TheStarBiz//p[@class='m']/a/@href) 
                                return
                               $url
                    ]]></xq-expression>
                </xquery>
                </var-def>

            <var-def name="new_page_content">
                    <http url="${new_url}"/>
                </var-def>                  



            <var-def name="fulldesc">
                <xpath expression="//div[@class='story']"> 
                    <var name="new_page_content"/>
                </xpath>
            </var-def>


            <var-def name="textfile">
                <file action="append" type="text" path="C:\Users\jacey\Desktop\WebHarvest\test.txt">
                    <template>
                        ${title} ${sys.cr}${sys.lf} 
                        ${link} ${sys.cr}${sys.lf} 
                        ${new_page_content} ${sys.cr}${sys.lf}
                    </template>
                </file>
            </var-def>
        </body>
    </loop>
</config>

【问题讨论】:

    标签: webharvest


    【解决方案1】:

    对于后来者:

    我遇到了几乎相同的错误,它是由正在解析的文件中的 javascript 的 sn-p 引起的:

    blah...for(var o=0;o<t.length;o++)...blah
    

    事后看来,我认为这很明显。在我们的例子中,这是因为端点不再返回 XML,而是返回 HTML。如果所需的文件实际上有 javascript,您可以在 js 周围添加 CDATA 标记,如下所示:

    <script>
        /* <![CDATA[ */
            console.log(myJavaScriptCode < theBest);
        /* ]]> */
    </script>`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 2019-12-10
      • 2023-02-10
      • 2013-05-06
      相关资源
      最近更新 更多