首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓取Netflix

抓取Netflix
EN

Stack Overflow用户
提问于 2016-03-26 21:56:45
回答 1查看 4.3K关注 0票数 8

试图以编程的方式从Netflix中获取最后一次查看的数据,但在登录阶段出现了一些问题。我当前的代码只会导致Netflix向后吐出一个We were unable to process your request.页面:

代码语言:javascript
复制
var request = require('request').defaults({jar: true});
var cheerio = require('cheerio');

var url = "https://www.netflix.com/Login?locale=en-GB&nextpage=https%3A%2F%2Fwww.netflix.com%2FWiViewingActivity";

request(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        var $ = cheerio.load(body);
        var authCode = $("#login-form > input").attr("value");
        request.post(url+"?email=myemail%40gmail.com&password=mypassword&RememberMe=on&authURL="+authCode, {
        }, function(err, response, body){
            console.log(body);
        });
    }
})

有什么想法吗?

令人惊讶的是,谷歌对于Scraping Netflix几乎什么都没有。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-27 00:14:49

想清楚了,需要:

  1. 发送任何类型的用户代理字符串。
  2. 使用请求的form参数发送表单数据
  3. 手动发送曲奇

下面是我的最后一段代码,它获取了最新的观看项目:

代码语言:javascript
复制
var request = require('request').defaults({jar: true});
var cheerio = require('cheerio');

var url = "https://www.netflix.com/Login";

request(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        var $ = cheerio.load(body);
        var authCode = $("#login-form > input").attr("value");
        request.post({url: url, 
            form: {
                "email": "email@gmail.com",
                "password": "password",
                "authURL": authCode,
                "RememberMe": "on"
            },
            headers:{
                'User-Agent': "NodeScrape"
            }
        }, function(err, response, body){
            var cookies = response.headers['set-cookie'];
            request({url: "https://www.netflix.com/WiViewingActivity", headers: {'Cookie': cookies, 'User-Agent': "NodeScrape"}}, function(error, response, body){
                var $ = cheerio.load(body);
                console.log($(".seriestitle").eq(0).text());
            });
        });
    }
})
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36241360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档