Xray Selector不返回值

时间:2015-07-15 16:52:50

标签: javascript node.js web-scraping npm cheerio

我有以下代码片段运行最新版本的x-ray npm模块。

我期望填充Meta和Metatags元素,但是当我打印出obj时它们不是。我做错了什么?

def create
    @order = Order.find(params[:order_id])
    @customer = @order.customer
    @message = current_user.messages.create(
      body: message_params[:body],
      order_id: @order.id
      )
    respond_to do |format|
      if @message.save
        format.html { redirect_to @message, notice: 'Message was successfully created.' }
        format.js
      end
    end

1 个答案:

答案 0 :(得分:0)

为meta设置选择器的方式基本上让xray寻找:

<meta>
    <meta name="@val" />
    <meta description="@val" />
    <meta name="@val" />
    <meta description="@val" />
</meta>

因此可以采用相同的替代方案:

x('http://www.rte.ie', {
    title: 'title',
    metaname: 'meta@name',
    metadescription: 'meta@content'
  }]),
    meta: 'meta'
})(function (err, obj) {
    console.log(obj);
})

如果您正在寻找多个名称/描述,只需将整个东西放在方括号中即可。

那,或者使用head标签作为选择器进行搜索:

x('http://www.rte.ie', 'html'{
    title: 'title',
    meta: x('head', [{
        name: 'meta@name',
        description: 'meta@content'
    }])
  }]),
    meta: 'meta'
})(function (err, obj) {
    console.log(obj);
})