Почему я получаю другой результат от этого, чем браузер / curl, чем от запроса? - PullRequest
0 голосов
/ 18 октября 2019

Если вы посещаете https://www.instagram.com/taylorswift/?__a=1 с помощью браузера, вы получаете JSON.

Если я запускаю curl -o output.json https://www.instagram.com/taylorswift/?__a=1, я получаю JSON.

Однако, когда я пытаюсь загрузить, используя запрос в узле, например:

var headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
    'Content-Type' : 'application/x-www-form-urlencoded',
    //'qs': {'__a': 1},
};

function abc (response) {
  console.log('redirect',response.headers.location,response.request.href)
  return true;
};

request({ url: 'https://www.instagram.com/taylorswift/?__a=1', headers: headers, followRedirect: abc}, function (err, response, body) {

    console.log('error',err)
    console.log('redirecting to ',response.request.uri.href)
    console.log('body',body.length)
    fs.writeFileSync('output.txt',body)

});

Я получаюстраница загрузки instagram, которая представляет собой просто набор бесполезных / обобщенных html и javascript.

И этот вывод:

0 | www |перенаправление https://www.instagram.com/accounts/login/ https://www.instagram.com/taylorswift/?__a=1

0 | www |ошибка null

0 | www |перенаправление на https://www.instagram.com/accounts/login/

0 | www |body 37818

Я просто хочу подсчитать количество подписчиков.

Есть идеи, почему запрос дает мне другой результат?

...