将var插入到url中,然后使用cheerio / request跟随节点js

时间:2014-07-30 10:57:39

标签: node.js request cheerio

我正在尝试从原始网址中获取变量,将其插入第二个网址,访问该网址,然后从中访问变量。我有两个问题:

问题1:'myurl'变量返回值

"http://api.trove.nla.gov.au/work/undefined?key=6k6oagt6ott4ohno&reclevel=full"

也就是说,它没有采用'myid'变量。

问题2:我如何跟随“myurl”网址,因为我想访问DOM?我是否会为'myurl'提出另一个“请求”?

到目前为止,这是我的代码:

var request = require('request'),
    cheerio = require('cheerio');
request('http://api.trove.nla.gov.au/result?key=6k6oagt6ott4ohno&zone=book&l-advformat=Thesis&sortby=dateDesc&q=+date%3A[2000+TO+2014]&l-availability=y&l-australian=y&n=0&s=0', function(error, response, html) {
    if (!error && response.statusCode == 200) {
        var $ = cheerio.load(html, {
          xmlMode: true
        });

        var myid = ($('work').attr('id'))
        var myurl = "http://api.trove.nla.gov.au/work/" +(myid)+ "?key=6k6oagt6ott4ohno&reclevel=full"
        console.log(myurl)
    }
    });

1 个答案:

答案 0 :(得分:0)

  1. 你的选择器可能不对,你的意思是'#work'还是'.work'?

  2. 是的,您必须使用myurlrequest()发出另一个请求(因为这就是您正在使用的内容)