查询经过身份验证的API

时间:2016-02-01 19:20:12

标签: import.io

我正在尝试使用Import.io构建一个Web scraper。我有以下问题,

1)有没有办法从经过身份验证的API获取数据而不知道其登录凭据?

2)是否可以从没有登录密码保护的网页获取数据?

我基本上想要从几个页面中提取数据,而不是每次都要求我登录。

例如,import.io无法提取此页面的数据 - https://github.com/settings/emails,因为它需要身份验证。有没有办法超越它。

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。它要求您使用登录查询方法(http://api.docs.import.io/#QueryMethods)。

喜欢的东西;

var credentials = {
    username: 'bunnyman',
    password: '*******'
};

// Stuff the cookie into a global (for now)
var cookie;

request.post({
        uri: the_uri_of_the_login_api,
        headers: { 'content-type': 'application/json' },
        json: credentials
    }, function(err, res, body){
        if(err) {
            console.log("error", body);
        } else {
            cookie = body;
        }
    });

这会让cookie回来。然后你可以使用_query调用(传入你回来的cookie)喜欢:

   var query = {
    "input": { "some_form_property": "value" },
    "additionalInput": {
        "8d817939-your-api-key-f5dc9502ed72": cookie
    },
    "returnPaginationSuggestions": true
}
request.post({
    uri:  the_uri_of_the_query_api,
    headers: { 'content-type': 'application/json' },
    json: query
}, function (error, response, payload){
    if (error){
        console.log(payload);
    } else {
        console.log(payload);
    }
});

希望有帮助..如果你弄清楚分页,请告诉我:)。