socket 实现淘宝秒杀器(抢拍器) 附源码与截图
但听说有人的秒杀器就能绕过验证码,还千真万确,我也百度GG 几天几夜,没找到答案,但至少有了点眉目,就是什么cookies强制过期法,来让验证码失效,可以提前输入验证码。
我知道园子里很多牛人。可以指点指点,共同学习学习,有兴趣的可以完善下,同时也学学高深的破解验证码的技术。
如果你真的绕过验证码了,那去年9月26日,淘宝1元包邮秒杀笔记本就是你的了。哈哈哈。。。。
代码都贴在这了,但代码中socket获取页面的时候有时候获取的不全,需要调整线程sleep时间之类的东西,代码里的东西有的是从网上copy下来到,作者也不不知道是谁了,我就用了,请多多海涵。
待会截个前台的图,好让没有接触过秒杀的朋友有个大体的了解,有兴趣的可以加我QQ(278113569 注:博客园)。
二话不说了,截图。
先输入淘宝的账户和密码,然后贴上宝贝的地址 点击检测并抢购。
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Web;
6 using System.Web.Security;
7 using System.Web.UI;
8 using System.Web.UI.HtmlControls;
9 using System.Web.UI.WebControls;
10 using System.Net;
11 using System.Net.Sockets;
12 using System.Text;
13 using System.Threading;
14 using System.IO;
15 using System.Text.RegularExpressions;
16
17 public partial class MiaoSha : System.Web.UI.Page
18 {
19 string strServer = string.Empty;
20 string strPath = string.Empty;
21
22 protected void Page_Load(object sender, EventArgs e)
23 {
24
25 }
26
27 public static String Recv(Socket sock, Encoding encode)
28 {
29 Byte[] buffer = new Byte[8192];
30 StringBuilder sb = new StringBuilder();
31
32 Thread.Sleep(50);//根据页面响应时间进行微调
33 Int32 len = sock.Receive(buffer);
34 sb.Append(encode.GetString(buffer, 0, len));
35
36 while (sock.Available > 0)
37 {
38 Thread.Sleep(300);//也可以视情况微调
39 Array.Clear(buffer, 0, buffer.Length);
40 len = sock.Receive(buffer);
41 sb.Append(encode.GetString(buffer, 0, len));
42 string ss = encode.GetString(buffer, 0, len);
43 }
44 sock.Close();
45 return sb.ToString();
46 }
47
48 /// <summary>
49 /// Socket获取页面HTML同时返回头信息
50 /// </summary>
51 /// <param name="server">服务器地址或主机名</param>
52 /// <param name="url">请求的页面</param>
53 /// <param name="method">post or get</param>
54 /// <param name="data">提交的数据</param>
55 /// <param name="Cookies">Cookies</param>
56 /// <returns>返回页面的HTML</returns>
57 public string GetHtml(string server, string url, string method, string data, string Cookies)
58 {
59 string _method = method.ToUpper();
60 string _url = string.Empty;
61 if (url == "")
62 {
63 _url = "/";
64 }
65 else if (url.Substring(0, 1) != "/")
66 {
67 _url = "/" + url;
68 }
69 else
70 {
71 _url = url;
72 }
73 string formatString = string.Empty;
74 string sendString = string.Empty;
75 Encoding ASCII = Encoding.Default;
76
77 //以下是拼接的HTTP头信息
78 if (_method == "GET")
79 {
80 formatString = "";
81 formatString += "{0} {1} HTTP/1.1/r/n";
82 formatString += "Host: {2}/r/n";
83 formatString += "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7/r/n";
84 formatString += "Accept: text/html/r/n";
85 formatString += "Keep-Alive: 300/r/n";
86 formatString += "Cookies:{3}/r/n";
87 formatString += "Connection: keep-alive/r/n/r/n";
88 sendString = string.Format(formatString, _method, _url, server, Cookies);
89 }
90 else
91 {
92 formatString = "";
93 formatString += "{0} {1} HTTP/1.1/r/n";
94 formatString += "Host: {2}/r/n";
95 formatString += "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7/r/n";
96 formatString += "Accept:text/html/r/n";
97 formatString += "Content-Type:application/x-www-form-urlencoded/r/n";
98 formatString += "Content-Length:{3}/r/n";
99 formatString += "Referer:http://buy.taobao.com/auction/buy_now.jhtml";
100 formatString += "Keep-Alive:300/r/n";
101 formatString += "Cookies:{4}/r/n";
102 formatString += "Connection: keep-alive/r/n/r/n";
103 formatString += "{5}/r/n";
104 sendString = string.Format(formatString, _method, _url, server, Encoding.Default.GetByteCount(data), Cookies, data);
105 }
106
107 Byte[] ByteGet = ASCII.GetBytes(sendString);
108 Byte[] RecvBytes = new Byte[1024];
109 String strRetPage = null;
110 IPAddress hostadd = Dns.Resolve(server).AddressList[0];
111 IPEndPoint EPhost = new IPEndPoint(hostadd, 80);
112 Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
113 s.Connect(EPhost);
114 if (!s.Connected)
115 {
116 strRetPage = "链接主机失败";
117 return strRetPage;
118 }
119 s.Send(ByteGet, ByteGet.Length, SocketFlags.None);
120
121 strRetPage = Recv(s, ASCII);
122
123 return strRetPage;
124 }
125
126 protected void btnLogin_Click(object sender, EventArgs e)
127 {
128 string u = this.txtUserName.Text.Trim();
129 string p = this.txtPwd.Text.Trim();
130 DateTime st = DateTime.Now;
131
132 //淘宝登录需要post的数据串
133 string sendData = "TPL_username=" + u + "&TPL_password=" + Server.UrlEncode(p) + "&actionForStable=enable_post_user_action&action=Authenticator&mi_uid=&mcheck=&TPL_redirect_url=http%3A%2F%2Fitem.taobao.com%2Fauction%2Fitem_detail-0db1-3036113cf5455bd74047f1a581ba4be7.htm&_oooo_=http%3A%2F%2Fitem.taobao.com%2Fauction%2Fitem_detail-0db1-3036113cf5455bd74047f1a581ba4be7.htm&event_submit_do_login=anything&abtest=&pstrong=3&from=&yparam=&done=&loginType=3&tid=&support=000001&CtrlVersion=1%2C0%2C0%2C7";
134
135 string s = GetHtml("login.taobao.com", "/member/login.jhtml", "post", sendData, "");
136 Session["Cookies"] = GetCookies(s); //从返回的源码中提取cookies,抓取登录后的页面需要附上该cookies
137
138 }
139 protected void btnBuy_Click(object sender, EventArgs e)
140 {
141 string strURL = this.txtURL.Text.Trim();
142 getServerAndPath(strURL);
143
144 string s = GetHtml(strServer, strPath, "get", "", Session["Cookies"].ToString());
145 //Response.Write(s);
146 if (s.IndexOf("立即购买") > 0)
147 {
148 string item_id = strURL.Split('-')[2].Split('.')[0].ToString();
149 string x_id = strURL.Split('-')[1].ToString();
150
151 s = GetHtml("buy.taobao.com", "/auction/buy.htm?from=itemDetail&item_id=" + item_id + "&x_id=" + x_id, "get", "", Session["Cookies"].ToString());
152 //Response.Write(s);
153 using (StreamWriter sw = new StreamWriter(Server.MapPath("debug1.html")))
154 {
155 sw.Write(s);
156 }
157
158 if (s.IndexOf("确认提交订单") > 0)
159 {
160 Session["Cookies"] = GetCookies(s);
161 string postData = getPostData(s);
162 string r = GetHtml("buy.taobao.com", "/auction/buy_now.htm", "post", postData, Session["Cookies"].ToString());
163 if (r.IndexOf("302") > 0)
164 {
165 using (StreamWriter sw = new StreamWriter(Server.MapPath("debug2.html")))
166 {
167 sw.Write(r);
168 }
169 }
170 else
171 {
172 ////
173 }
174 using (StreamWriter sw = new StreamWriter(Server.MapPath("debug2.html")))
175 {
176 sw.Write(r);
177 }
178 }
179 }
180 else if (s.IndexOf("btn-wait") > 0)//该宝贝还处于定时上架的状态
181 {
182
183 }
184
185 }
186
187
188 /// <summary>
189 /// 从返回的源代码中提取cookies
190 /// </summary>
191 /// <param name="s"></param>
192 /// <returns></returns>
193 private string GetCookies(string s)
194 {
195 StringBuilder sbCookies = new StringBuilder();
196
197 string[] arr = s.Split(new string[] { "/r/n" }, StringSplitOptions.RemoveEmptyEntries);
198 foreach (string str in arr)
199 {
200 if (str.StartsWith("Set-Cookie: "))
201 {
202 int intStart = str.IndexOf(";");
203 string strCookie = str.Substring(12, intStart - 11);
204 sbCookies.Append(strCookie);
205 }
206 }
207 return sbCookies.ToString();
208 }
209
210 private string GetLocationURL(string s)
211 {
212
213 string RtnString = string.Empty;
214 StringBuilder sbCookies = new StringBuilder();
215
216 string[] arr = s.Split(new string[] { "/r/n" }, StringSplitOptions.RemoveEmptyEntries);
217 foreach (string str in arr)
218 {
219 if (str.StartsWith("Location: "))
220 {
221 RtnString = str.Substring(11, str.Length - 11);
222 }
223 }
224 return RtnString;
225 }
226
227
228
229 private void getServerAndPath(string strURL)
230 {
231 if (strURL != "" && strURL.IndexOf("/") > 0)
232 {
233 int SlashPos = strURL.Substring(7).IndexOf("/");
234 strServer = strURL.Substring(7, SlashPos);
235 strPath = strURL.Substring(SlashPos + 7);
236 }
237 else
238 return;
239 }
240
241
242
243 /// <summary>
244 /// 从最后确认购买页面的源代码中提取表单数据的数据
245 /// </summary>
246 /// <param name="html"></param>
247 /// <returns></returns>
248 private string getPostData(string html)
249 {
250 string postStr = "";
251 string pat = "<input .*?name.{0,1}=.{0,1}/"(.*?)/".*? value.{0,1}=/"(.*?)/".*?>";
252 Regex regex = new Regex(pat, RegexOptions.Multiline | RegexOptions.IgnoreCase);
253 MatchCollection mcollection = regex.Matches(html);
254
255 foreach (Match m in mcollection)
256 {
257 GroupCollection gcollection = m.Groups;
258 if (m.ToString().IndexOf("_fma.b._0.s") > 0) { continue; }
259 if (m.ToString().IndexOf("_fma.b._0.c") > 0) { continue; }
260 if (m.ToString().IndexOf("isCheckCode") > 0 && gcollection[2].Value.ToLower() == "true")
261 {
262 //isCheckCode = true;
263 }
264 postStr += gcollection[1].Value; postStr += "=";
265 postStr += Server.UrlEncode(gcollection[2].Value);
266 postStr += "&";
267 }
268 postStr += "n_prov=370000&n_city=370500&n_area=370522&_fma.b._0.w=quicky&_fma.b._0.ac=250&consignment=10&_fma.b._0.au=5&_fma.b._0.c=8888";
269 postStr = postStr.Replace("quantity=0", "quantity=1").Replace("_fma.b._0.d=您不必重复省-市-区信息;至少5个字", "_fma.b._0.d=" + Server.UrlEncode("收货人的具体地址")).Replace("_fma.b._0.po=", "_fma.b._0.po=230031").Replace("_fma.b._0.de=", "_fma.b._0.de="+Server.UrlEncode("啊峰")).Replace("_fma.b._0.u=", "_fma.b._0.u=0").Replace("_fma.b._0.di=1", "_fma.b._0.di=370522").Replace("_fma.b._0.deli=", "_fma.b._0.deli=13888888888");
270 postStr += "&_fma.b._0.s=2";
271 //postStr = Server.UrlEncode(postStr);
272
273 return postStr;
274 }
275 }
socket 实现淘宝秒杀器(抢拍器) 附源码与截图相关推荐
- 淘宝网【附源码-仅学习】
还想起刚开始学完HTML时候自己做的第一个项目就是这个淘宝网页,由于当时还没有学JS,网页用了大量的超链接,而且仅兼容最新版的谷歌与IE,所以仅适合刚学完Html的同学作为学习参考,我已经将提取链接放 ...
- 如何秒下单?python的淘宝秒杀抢购下单源码参考
如何秒下单?python的淘宝秒杀抢购下单源码参考 疫情如期,隔离还在继续,何时工作是一个头大的问题,最近在看口罩,不少电商平台都有放出口罩,当然,手残党将会也会是一直难以下手,你可能很难抢得到,故找 ...
- 淘宝top sdk java源码中的问题
最近做一个项目,需要对接拼多多的api接口,其本身没有提供sdk,但是发现api设计与淘宝top结构非常类似,之前由于对接过淘宝的top,对淘宝top sdk的结构比较了解,且淘宝sdk整体比较清晰, ...
- Uni-APP微商淘宝客小程序源码
☑️ 品牌:uniapp ☑️ 语言:vue ☑️ 类型:微商淘宝客小程序源码 ☑️ 支持:小程序
- java计算机毕业设计共享充电宝管理系统(附源码、数据库)
java计算机毕业设计共享充电宝管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe ...
- iOS物理碰撞、唱吧音频处理、仿淘宝联动效果等源码
iOS精选源码 物理仿真 碰撞 陀螺仪 使用 仿淘宝详情和每日优鲜的一个联动效果 JJNetwork网络库 iOS列表选择弹框 网络视频直播类--原生socket音视频实时传输--智能家居 Skele ...
- iOS物理碰撞、唱吧音频处理、仿淘宝联动效果等源码 1
iOS精选源码 物理仿真 碰撞 陀螺仪 使用 仿淘宝详情和每日优鲜的一个联动效果 JJNetwork网络库 iOS列表选择弹框 网络视频直播类–原生socket音视频实时传输–智能家居 Skeleto ...
- 读淘宝商品描述页源码delphi版
淘宝的宝贝描述页是ajax异步载入的,所以直接idhttp读一下是弄不到它的源码的.用下面的方法就可以. 代码如下: unit Unit1; interface uses Windows, Mes ...
- 我秀秀淘宝购物导航淘宝客api程序源码版(.net源码)
程序介绍: 程序采用.net 2.0进行开发,全自动应用淘客api,自动采集信息,无需,手工更新,源码完全开放. 针对淘客3/300毫秒的查询限制,系统采用相应的解决方案,可以解决大部分因此限制带来的 ...
- 手机淘宝秒杀页面html源码
下载地址 一款商品秒杀页面html源码,仿淘宝手机端商品秒杀. dd:
最新文章
- windows server 2003上安装mysql的问题
- python windows端口检测并杀死脚本
- WatchOS系统开发大全(1)-AppleWatch背景介绍
- CodeForces - 1249C2 Good Numbers (hard version)(进制转换)
- MFC GDI绘图基础
- 最全的HTML特殊字符集
- coap python3_node-coap入门(三)——Observe
- 计算机台式右上角三个灯作用,键盘右上角的三个灯是什么?有什么用
- YOLO 系目标检测算法家族全景图!
- Linux module 添加到bashrc 和临时ifort编译器 以及python2和3的配置
- NIST:制定Cybersecurity的框架进行时
- 毛星云OpenCV3
- 论文推荐到计算机科学期刊,计算机类论文参考文献推荐 计算机类核心期刊参考文献哪里找...
- python图形绘制星空图_天文星空图谱开源软件Stellarium
- 五年谷歌ML Infra生涯,我学到最重要的3个教训
- 极客日报第89期:经纬张颖「炮轰」扫码点餐;淘宝特价版给拼多多送芒果;Firefox 87.0 发布
- 阿古斯机器人_新卡评测 地精大战侏儒资料先睹为快
- 一款简单的本地音乐播放器,界面美观、包括主题切换、歌单管理等等
- android 点9图使用教程,Android Studio中点9图片的详细使用教程
- PyQt5-五十音图听写