gpt4 book ai didi

c# - 使用 C# 以编程方式登录亚马逊

转载 作者:太空狗 更新时间:2023-10-29 21:41:31 25 4
gpt4 key购买 nike

我想使用 C# 以编程方式登录亚马逊卖家中心。我不想使用 Amazon Web Services。

这是我到目前为止所做的:

private void button1_Click(object sender, EventArgs e)
{
string appURL = "https://sellercentral.amazon.com/gp/sign-in/sign-in.html/ref=xx_login_lgin_home";
string strPostData = "protocol=https&action=sign-in&email=test%40gmail.com&destination=https%3A%2F%2Fsellercentral.amazon.com%2Fgp%2Fhomepage.html%3Fie%3DUTF8%26%252AVersion%252A%3D1%26%252Aentries%252A%3D0&optin=1&ouid=01&password=ntest&sign-in-button=&metadata1=SIsVVcIUMA1uElSK%2BySsVuCX1YuhcTji35ShGdQ%2Fd4ipBgkh6qW6HcPfyVu4dbOFdZiErWz%2F9OumR%2FfeVnrNSUUSEkIokrMPxYFPtZTlfJc44D8hWHpewjOs5TF4NIDyehvkc5eHJ8GsDbiUSdBtOq4iBnIpkIpAodIzIVFHK%2FQJJICA9n%2F8abB4XfwODJrI7YSa1gwCMrJbh0wvpAW5%2B%2BHecdjA5Bin8slkBqj9LQG%2FfSrTXlAGPsW21qV2ba4kej5xdjytVTELVqnLPB9Fc1Z%2FR98qDpBkQ%2F2lM3EV4POoe0nsAMALomqvOhOkIInqp14Ic%2BxJU35hX89rIhmSQMpL1WtMGE%2F9A2ebmHV%2BzlW0tUZIfxyupg2MiNJIeg1uNqBhBT8duYyKp0n3d5gYOnhxYCQTqR297AV%2FDAdHSlbrJRT5HX9spg9RyHSTDLiGvhy1BaK0LIzvR%2Bj786i4Z%2FCGBpb31XcXrFx9uDe8rxtNRLFiDXqxUCCf8hTBEhtyYriB2%2FlZAvoIRyAZMLDYykncALiRVPOWkQX%2FQjZUu6M6bBfqaQ6ODQlbc0j9V2FZ%2BEQng456mQmUOoO5";

// Setup the HTTP request.
HttpWebRequest objWebRequest = (HttpWebRequest)WebRequest.Create(appURL);
objWebRequest.Method = "POST";
objWebRequest.AllowAutoRedirect = true;
objWebRequest.CookieContainer = new CookieContainer(); //Enable Cookie
objWebRequest.ContentLength = strPostData.Length;
objWebRequest.ContentType = "application/x-www-form-urlencoded";
objWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";

// Post to the login form.
StreamWriter swRequestWriter = new
StreamWriter(objWebRequest.GetRequestStream());
swRequestWriter.Write(strPostData);
swRequestWriter.Close();

// Get the response.
HttpWebResponse objWebResponse =
(HttpWebResponse)objWebRequest.GetResponse();

// Read the response
StreamReader srResponseReader = new
StreamReader(objWebResponse.GetResponseStream());
string strResponseData = srResponseReader.ReadToEnd();
srResponseReader.Close();

// Display the response.
webBrowser1.DocumentText = strResponseData;
}

当我执行它时,我收到登录页面的响应,但没有登录...为什么?我做错了什么?我使用网络浏览器显示 html 响应。

我的目标是登录,然后在卖家中心的库存中搜索一些产品。如何做到这一点并在我将执行的其他网络请求上保留 session 和 cookie?

最佳答案

他们 [Amazon] 在页面上有大量的 Javascript。这些脚本的全部目的似乎是防止人们做您正在尝试做的事情。

操作表单数据并调用各种其他页面资源。然后亚马逊使用这些其他 Assets 调用和操纵的数据来确定请求是来自合法浏览器还是试图模拟浏览器的东西。

这是一种安全措施,可以阻止卖家账户遭受暴力破解攻击等。

JS 片段被有意混淆,以防止您轻易地对它们进行逆向工程,但当然,只要您运用知识、耐心和毅力,一切皆有可能。

如果您想继续这样做,那么我会建议对页面上的 JS 进行逆向工程,然后模拟那些代码对表单值等的处理,并模拟其他 Assets 调用以及相关的时序流。注意在图像或远程脚本 header 中 secret 设置的 cookie,并确保脚本的 cookie jar 始终正常运行。

这些反模拟技术经常用于防止机器人网络模拟 PPC 网络上的点击。它们不是万无一失的,也不是牢不可破的,但你需要相当长的时间才能让它发挥作用。

老实说,如果您对他们提供的 C# 库的编程风格或功能不满意,那么您最好构建自己的库以利用亚马逊商城网络服务。

从长远来看,您将拥有一个更稳定的工具包,不需要定期更新。

关于c# - 使用 C# 以编程方式登录亚马逊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6888549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com