首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用WebHarvest抓取子链接中的信息

尝试使用WebHarvest抓取子链接中的信息
EN

Stack Overflow用户
提问于 2015-06-26 14:10:09
回答 1查看 116关注 0票数 2

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

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

发布于 2017-08-26 01:48:40

对于后面的人:

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

代码语言:javascript
复制
blah...for(var o=0;o<t.length;o++)...blah

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

代码语言:javascript
复制
<script>
    /* <![CDATA[ */
        console.log(myJavaScriptCode < theBest);
    /* ]]> */
</script>`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31066107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档