我正在尝试使用Import.io构建一个Web scraper。我有以下问题,
1)有没有办法从经过身份验证的API获取数据而不知道其登录凭据?
2)是否可以从没有登录密码保护的网页获取数据?
我基本上想要从几个页面中提取数据,而不是每次都要求我登录。
例如,import.io
无法提取此页面的数据 - https://github.com/settings/emails,因为它需要身份验证。有没有办法超越它。
答案 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);
}
});
希望有帮助..如果你弄清楚分页,请告诉我:)。