无法从Chrome扩展程序登录到其他网站

时间:2017-07-07 20:10:55

标签: cookies google-chrome-extension request xmlhttprequest

我正尝试从Chrome扩展程序登录到在线购物网站,然后抓取它。 从浏览器执行此操作时会发生三个步骤。

  1. 访问该网站,该网站为您提供了一个cookie。
  2. 转到登录页面,将上述cookie,用户名和密码作为POST中的参数发送。该网站为您提供了5个以上的Cookie。
  3. 调用GET到站点内的路径,以及五个+一个=总共六个cookie。
  4. 现在在浏览器中运行良好。如果我将浏览器中的所有cookie复制到curl中,则以下调用将起作用。

    curl -X GET --header "Cookie: cookie1=value1; cookie2=value2; cookie3=value3; cookie4=value4; cookie5=value5; cookie6=value6" http://www.sitedomain.com/product_info.php?products_id=350799
    

    但是,如何在Google Chrome扩展程序中重复此行为?我没做什么似乎工作,是的我将域添加到manifest.json并且我已经尝试了request,requestify(都是browserified)和XMLHttpRequest。这些请求似乎很好(包括cookie),但我得到的响应似乎是我在网站收到cookie时得到的响应。

    的manifest.json

    {
      "manifest_version": 2,
    
      "name": "Getting started example",
      "description": "This extension shows a Google Image search result for the current page",
      "version": "1.0",
    
      "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
      },
    
      "permissions": [
        "activeTab",
        "cookies",
        "https://sitedomain.com/*",
        "http://sitedomain.com/*",
        "https://www.sitedomain.com/*",
        "http://www.sitedomain.com/*"
      ]
    }
    

    我使用的代码(请求版本):

    var request = require('request');
    request = request.defaults({jar: true});
    
    var jar = request.jar();
    var cookie1 = request.cookie('cookie1=value1');
    var cookie2 = request.cookie('cookie2=value2');
    var cookie3 = request.cookie('cookie3=value3');
    var cookie4 = request.cookie('cookie4=value4');
    var cookie5 = request.cookie('cookie5=value5');
    var cookie6 = request.cookie('cookie6=value6');
    
    var url = "http://www.sitedomain.com";
    jar.setCookie(cookie1, url);
    jar.setCookie(cookie2, url);
    jar.setCookie(cookie3, url);
    jar.setCookie(cookie4, url);
    jar.setCookie(cookie5, url);
    jar.setCookie(cookie6, url);
    
    request({uri: http://www.sitedomain.com/product_info.php?products_id=350799, jar: jar}, function (error, response, html) {
        if (!error && response.statusCode == 200) {
            //breakpoint here and we did not receive the page after login
        }
    }
    

    任何帮助都将不胜感激。

0 个答案:

没有答案
相关问题