主要的赚钱方式和倒爷其实是差不多的,自动检测igxe平台上价格与buff相差8.5%以上的饰品,按照历史价格进行一定的过滤,防止翻车,然后自动购买。

2019年经历了十几次的改进以对抗同行的脚本,到11月末确实干不过了,就搁置了。差不多历经8个月,赚了有4w吧。前3个月还是半自动的,后面就改成了全自动。

主要是一开始对自己做的脚本没有信心,怕出bug,经过几个月的测试,有了初步的了解,同时也因为同行速度越来越快,就改为全自动。以下是用python做的脚本,因为python的可移植性属实8行,在其他人的电脑大概率跑不起来。这边我也分享环境。

链接:点这里

提取码:qne6

这是我初学python瞎鸡巴敲的项目,仅供参考。

用于收集URL数据的程序源码

 1 # coding:utf-8
2 import requests
3 import json
4 from datetime import datetime
5 import re
6 import threading
7 import time
8 import os
9 import urllib3
10 from appium import webdriver as appwebdriver
11 import itchat
12 from selenium import webdriver
13 from selenium.webdriver import ActionChains
14 from selenium.webdriver.common.keys import Keys
15 from itchat.content import *
16 import smtplib
17 from email.mime.text import MIMEText
18 cookie ='''_ga=GA1.2.1825115838.1564985594; _ntes_nnid=9fb57abcfe13da07759ef54dfce1cf16,1565253919812; _ntes_nuid=9fb57abcfe13da07759ef54dfce1cf16; _gid=GA1.2.1661889417.1566449941; csrf_token=0f98e3f72a0eaa1d3def6557d1698f85c800bb06; game=csgo; _gat_gtag_UA_109989484_1=1; NTES_YD_SESS=mcVtvffuy1B3w_9rE2sUoD7SNzipZpq2_LeArKiEwwfjhziQhoRng7oYaG0u4HhWmRO1rhdsM3r5DjipxqTBQCdqptEedKSlrKtuLtVns8T8LPbfCTEDhSAE33hFxp1dXtMZc7fDeaX5UIzJgcpB7mSTS46SPt7jYZUb5XdgDggD_nkur8JKLGab50GhHqqwExRDIsFL_pmdFxLRmEtG.mA4FqUZXa3Gc0MYwL4AiC6qu; S_INFO=1566483995|0|3&80##|13144266321; P_INFO=13144266321|1566483995|1|netease_buff|00&99|gud&1566451144&netease_buff#gud&440500#10#0#0|&0|null|13144266321; session=1--yGMiLNMb_mjeVKQzv-3wdWQ5SG93aZxYcUK9sbI1URH2045887594; Locale-Supported=zh-Hans'''
19 #手动从谷歌浏览器中的netword获取cookie,复制粘贴
20 header = {
21 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
22 'Connection': 'keep-alive',
23 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
24 'Cookie': cookie
25 }
26 def getbuffdatagunsurl():
27 z = open('buffdataknife2', 'w', encoding='utf-8') ##################
28 for i in range(1,83): ##################
29 url = "https://buff.163.com/api/market/goods?game=csgo&page_num="+str(i)+"&category_group=knife&_=1566484015091" ###############
30 #print(url)
31 point = requests.get(url, headers=header, timeout=5)
32 turn = point.content.decode(encoding='gbk', errors='ignore')
33 res = json.loads(turn)
34 for i in res['data']['items']:
35 content = {}
36 content['价格']=i['sell_min_price']
37 content['goodid']=i['id']
38 content['name']=i['name']
39 if float(content['价格'])>200 :
40 goodsid =str(content['goodid'])
41 itemname = content['name'].replace(" ","")
42 hisurl = 'https://buff.163.com/api/market/goods/bill_order?game=csgo&goods_id=' + goodsid
43 tradeurl = 'https://buff.163.com/api/market/goods/sell_order?game=csgo&goods_id=' + goodsid + '&page_num=1&sort_by=default&mode=&allow_tradable_cooldown=1'
44 flag =0
45 point = requests.get(hisurl, headers=header, timeout=5)
46 turn = point.content.decode(encoding='gbk', errors='ignore')
47 res = json.loads(turn)
48 try:
49 if str(res['data']['items'][0]['buyer_pay_time']) == "1566403200" and str(res['data']['items'][1]['buyer_pay_time']) == "1566403200":
50 print(itemname+" "+str(content['价格']))
51 flag = 1
52 except:
53 print("https://buff.163.com/market/goods?goods_id="+goodsid+"&from=market#tab=history")
54 if flag==1:
55 z.write(tradeurl + '\n')
56 z.write(hisurl + '\n')
57 z.write(itemname+'\n')
58 def getigxedatagunsurl():
59 global itemsdict
60 itemsdict ={}
61 kk = open('buffdataknife2', 'r', encoding='utf-8') ##################
62 igxe = open("igxedataknife2" , 'w' , encoding='utf-8') ##################
63 count = (int)(1617/3) ##################
64 for i in range(0, count):
65 tradeurl = kk.readline()
66 hisurl = kk.readline()
67 itemname = kk.readline()
68 itemsdict[itemname] = 1
69 print(itemname+"BUFF")
70 url = "https://www.igxe.cn/csgo/730?ctg_name=%E5%8C%95%E9%A6%96&is_buying=0&is_stattrak%5B%5D=0&is_stattrak%5B%5D=0&sort=3&ctg_id=5&type_id=0&page_no=1&page_size=2000&rarity_id=0&exterior_id=0&quality_id=0&capsule_id=0&_t=1566576849724" ##################
71 driver = webdriver.Chrome()
72 driver.maximize_window()
73 driver.set_page_load_timeout(20)
74 try:
75 driver.get(url)
76 except:
77 pass
78 for i in range(1,2000):
79 try:
80 namexpath = driver.find_element_by_xpath('//*[@id="center"]/div/div[3]/div/div[2]/a['+str(i)+']/div[3]')
81 urlxpath = driver.find_element_by_xpath('//*[@id="center"]/div/div[3]/div/div[2]/a['+str(i)+']')
82 url = urlxpath.get_attribute('href')
83 goodsid = url.replace("https://www.igxe.cn/product/730/","")
84 name = namexpath.text +"\n"
85 name = name.replace(" ","")
86 if name in itemsdict.keys():
87 print(name)
88 igxe.write("https://www.igxe.cn/product/get_product_sales_history/730/"+goodsid+"\n")
89 igxe.write("https://www.igxe.cn/product/trade/730/"+goodsid+"\n")
90 except Exception as e:
91 print(e)
92 break
93 if __name__ =='__main__':
94 getigxedatagunsurl()

主程序源码

   1 # coding:utf-8
2 from multiprocessing import freeze_support
3 import requests
4 import json
5 from datetime import datetime
6 import re
7 import threading
8 import time
9 import os
10 import urllib3
11 import win32com.client
12 from appium import webdriver as appwebdriver
13 import itchat
14 from selenium import webdriver
15 from selenium.webdriver import ActionChains
16 from selenium.webdriver.common.keys import Keys
17 from itchat.content import *
18 import smtplib
19 from email.mime.text import MIMEText
20 '''
21 购物车检测是否有1w
22 '''
23 '''
24 cd D:\python\buff爬虫\buff爬虫
25 D:
26 pyinstaller -p D:\python\buff爬虫\buff爬虫\venv\Lib\site-packages autobuy_xiaomi8se.py
27 '''
28 def checktimeout():
29 global check
30 try:
31 appdriver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.alipay.android.phone.safepaybase:id/key_num_dymic")')
32 check = 1
33 except Exception as e:
34 try:
35 appdriver.tap([(179, 2160), (179, 2160)], 1)
36 except:
37 pass
38 print(e)
39 def aliypay():
40 global runtime
41 global append
42 global check
43 global appdriver
44 while 1 :
45 try:
46 if runtime == 150:
47 break
48 runtime +=1
49 if appdriver.find_element_by_id('cn.igxe:id/confirm_payment_actual_price_tv').text==buyprice:
50 appdriver.tap([(949, 1104), (949, 1104)], 100)
51 appdriver.tap([(949, 1104), (949, 1104)], 100)
52 appdriver.tap([(567, 2200), (567, 2200)], 100)
53 appdriver.tap([(567, 2200), (567, 2200)], 100)
54 break
55 else:
56 itchat.send_msg("物品价格与加入购物车时不符",toUserName=itcaht_user_name)
57 append = datetime.now()
58 runtime = 150
59 appdriver.back()
60 appdriver.back()
61 appdriver.back()
62 return
63 except Exception as e:
64 print(e)
65 check = 0
66 time.sleep(2)
67 #appdriver.implicitly_wait(0.2)
68 while 1:
69 try:
70 if runtime == 150:
71 break
72 runtime+=1
73 appdriver.tap([(179, 2160), (179, 2160)], 1)
74 t = threading.Thread(target=checktimeout)
75 t.setDaemon(True)
76 t.start()
77 t.join(timeout=0.5)
78 if check==0:
79 adb2 = "adb shell input tap 179 2160"
80 os.system(adb2)
81 continue
82 appdriver.tap([(875, 2060), (875, 2060)], 1)
83 appdriver.tap([(574, 2060), (574, 2060)], 1)
84 appdriver.tap([(875, 2060), (875, 2060)], 1)
85 appdriver.tap([(574, 2060), (574, 2060)], 1)
86 appdriver.tap([(875, 2060), (875, 2060)], 1)
87 appdriver.tap([(574, 2060), (574, 2060)], 1)
88 break
89 except Exception as e:
90 print(e)
91 try:
92 appdriver.tap([(179, 2160), (179, 2160)], 1)
93 except:
94 pass
95 def wechatpay():
96 global runtime
97 global append
98 while 1 :
99 try:
100 if runtime == 150:
101 break
102 runtime +=1
103 appdriver.find_element_by_name('微信支付').click()
104 appdriver.tap([(950, 1800), (950, 1800)], 100)
105 appdriver.tap([(950, 1800), (950, 1800)], 100)
106 break
107 except:
108 pass
109 while 1 :
110 try:
111 if runtime == 150:
112 break
113 runtime +=1
114 if appdriver.find_element_by_id("com.tencent.mm:id/fdj").text==buyprice:
115 appdriver.tap([(546, 725), (546, 725)], 100)
116 appdriver.tap([(546, 725), (546, 725)], 100)
117 time.sleep(0.3)
118 appdriver.tap([(950, 1700), (950, 1700)], 1)
119 appdriver.tap([(550, 1700), (550, 1700)], 1)
120 appdriver.tap([(950, 1700), (950, 1700)], 1)
121 appdriver.tap([(550, 1700), (550, 1700)], 1)
122 appdriver.tap([(950, 1700), (950, 1700)], 1)
123 appdriver.tap([(550, 1700), (550, 1700)], 1)
124 append = datetime.now()
125 else:
126 append = datetime.now()
127 itchat.send_msg("商品价格与一开始不符",toUserName=itcaht_user_name)
128 findmainweb()
129 break
130 except:
131 pass
132 while 1:
133 try:
134 if runtime == 150:
135 break
136 runtime +=1
137 appdriver.find_element_by_name('返回商家').click()
138 break
139 except:
140 pass
141 def calc_count():
142 strday = "RUNLOG-" + time.strftime('%Y-%m-%d', time.localtime(time.time())) + ".txt"
143 with open(strday, "r", encoding='utf-8') as log:
144 temp = log.readlines()
145 pattern = re.compile('\([0-9]*?\)')
146 result1 = pattern.findall(str(temp))
147 #print(result1)
148 i = len(result1)
149 if i>0:
150 res = result1[i-1].replace("(","").replace(")","")
151 res = int(res)
152 print(res)
153 return res
154 else:
155 return 0
156 def judgetime():
157 global itemcount
158 strtime = time.strftime('%H:%M:%S', time.localtime(time.time()))
159 pattern = re.compile('00:00:')
160 result1 = pattern.findall(str(strtime))
161 if len(result1)==1:
162 time.sleep(60)
163 itemcount = 0
164 def findmainweb():
165 global appdriver
166 try:
167 appdriver.find_element_by_id("cn.igxe:id/personalImageView")
168 return
169 except:
170 pass
171 time = 0
172 while 1:
173 try:
174 time +=1
175 if time == 100:
176 try:
177 appdriver.quit()
178 time.sleep(2)
179 except:
180 pass
181 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
182 time.sleep(7)
183 appdriver.back()
184 try:
185 appdriver.find_element_by_id('com.alipay.android.app:id/flybird_dialog_double_right_btn').click() #啥玩意
186 except:
187 pass
188 appdriver.find_element_by_id("cn.igxe:id/personalImageView")
189 break
190 except:
191 pass
192 def updatealiypay():
193 global appdriver
194 trytime = 0
195 findmainweb()
196 try:
197 appdriver.find_element_by_name("跳过此版本").click()
198 except:
199 pass
200 while 1:
201 try:
202 if trytime == 100:
203 break
204 trytime +=1
205 appdriver.find_element_by_id('cn.igxe:id/mallTextView')
206 appdriver.tap([(136, 2150), (136, 2150)], 1)
207 appdriver.tap([(136, 2150), (136, 2150)], 1)
208 break
209 except Exception as e:
210 pass
211 while 1:
212 try:
213 if trytime == 100:
214 break
215 trytime += 1
216 appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/goods_list_recycler"]/android.view.ViewGroup[1]').click()
217 break
218 except Exception as e:
219 pass
220 while 1:
221 try:
222 if trytime == 100:
223 break
224 trytime += 1
225 appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/sale_recyclerView"]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.TextView[3]').click()
226 break
227 except Exception as e:
228 pass
229 while 1:
230 try:
231 if trytime == 100:
232 break
233 trytime += 1
234 appdriver.find_element_by_name("支付宝支付").click()
235 break
236 except:
237 pass
238 try:
239 appdriver.find_element_by_id("cn.igxe:id/confirm_payment_commit_btn").click()
240 except:
241 pass
242 if trytime == 100:
243 try:
244 appdriver.quit()
245 time.sleep(2)
246 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
247 except:
248 pass
249 time.sleep(5)
250 appdriver.back()
251 appdriver.back()
252 appdriver.back()
253 findmainweb()
254 cleancart()
255 def cleancart():
256 appdriver.tap([(971, 2150), (971, 2150)], 1)
257 appdriver.tap([(971, 2150), (971, 2150)], 1)
258 appdriver.tap([(779, 2150), (779, 2150)], 1)
259 appdriver.tap([(779, 2150), (779, 2150)], 1)
260 runtime = 0
261 while 1:
262 try:
263 if runtime == 50:
264 break
265 runtime += 1
266 appdriver.find_element_by_name('管理').click() # 待改
267 break
268 except:
269 pass
270 while 1:
271 try:
272 if runtime == 50:
273 break
274 runtime += 1
275 appdriver.find_element_by_name('全选').click() # 待改
276 break
277 except:
278 pass
279 while 1:
280 try:
281 if runtime == 50:
282 break
283 runtime += 1
284 appdriver.find_element_by_id("cn.igxe:id/item_shopping_cart_commit_tv").click()
285 break
286 except:
287 pass
288 def get_screen_and_send_web(pre):
289 screenshot = time.ctime().replace(":", "-")
290 driver.get_screenshot_as_file("C:\\Users\\86131\\Desktop\\bugscreen\\" + pre+screenshot + ".png")
291 itchat.send_image(u"C:\\Users\\86131\\Desktop\\bugscreen/" + pre + screenshot + ".png",
292 toUserName=itcaht_user_name)
293 def log(printsrt):
294 strtime = time.strftime('%H:%M:%S', time.localtime(time.time()))
295 strday = "RUNLOG-"+time.strftime('%Y-%m-%d', time.localtime(time.time()))+".txt"
296 print(strtime + " " + str(printsrt))
297 with open (strday,"a",encoding='utf-8') as log:
298 log.write(strtime+" "+str(printsrt)+"\n")
299 def timeprint(printsrt):
300 strtime = time.strftime('%H:%M:%S', time.localtime(time.time()))
301 print(strtime + " " + str(printsrt))
302 def after_logout():
303 log("退出后调用")
304 sendmsg_2()
305 def checkbuy_info():
306 global appdriver
307 global buyprice
308 runtime_1 = 0
309 try:
310 if appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/recyclerView"]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.TextView[3]').text=="待买家发起报价":
311 appdriver.tap([(562, 695), (562, 695)], 1)
312 time.sleep(2)
313 float1 = float(appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/unit_price_tv"]').text)
314 if float1==float(buyprice):
315 try:
316 itchat.send_msg("价格正确,正在发送报价", toUserName=itcaht_user_name)
317 except:
318 pass
319 else:
320 try:
321 itchat.send_msg("价格不匹配,终止交易",toUserName=itcaht_user_name)
322 except:
323 pass
324 return
325 while 1:
326 try:
327 if runtime_1 == 50:
328 itchat.send_msg("发送报价失败",toUserName=itcaht_user_name)
329 break
330 runtime_1 += 1
331 appdriver.find_element_by_name('发送报价').click()
332 time.sleep(2)
333 appdriver.find_element_by_name('我已开启').click()
334 break
335 except:
336 pass
337 time.sleep(6)
338 appdriver.back()
339 time.sleep(1)
340 appdriver.back()
341 time.sleep(1)
342 get_screen_and_send("BUYINFO-")
343 if appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/recyclerView"]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.TextView[3]').text == "待买家发起报价":
344 itchat.send_msg("发送报价失败",toUserName=itcaht_user_name)
345 else:
346 itchat.send_msg("发送报价成功",toUserName=itcaht_user_name)
347 except:
348 itchat.send_msg("出现未知错误", toUserName=itcaht_user_name)
349 get_screen_and_send("ERROR-")
350 try:
351 appdriver.quit()
352 except:
353 pass
354 time.sleep(1)
355 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
356 time.sleep(8)
357 def app_autobuy():
358 global buyprice
359 global appdriver
360 global buyinfo
361 global endtime
362 global nowtime
363 global runtime
364 global append
365 runtime = 0
366 appnow = datetime.now()
367 appdriver.tap([(958, 2200), (958, 2200)], 100)
368 appdriver.tap([(958, 2200), (958, 2200)], 100)
369 appdriver.tap([(751, 2200), (751, 2200)], 100)
370 appdriver.tap([(751, 2200), (751, 2200)], 100)
371 time.sleep(0.7)
372 appdriver.tap([(125, 2039), (125, 2039)], 100)
373 appdriver.tap([(936, 2050), (936, 2050)], 100)
374 appdriver.tap([(936, 2050), (936, 2050)], 100)
375 aliypay()
376 append = datetime.now()
377 log("购买耗时: " + str(append - appnow+endtime-nowtime) + '\n' + "runtime = " + str(runtime))
378 itchat.send_msg("火狐耗时:"+str(endtime-nowtime)+"\n"+"APP耗时:"+str(append - appnow)+"\n"+"购买总耗时: " + str(append - appnow+endtime-nowtime) + '\n' + "JS执行次数 = " + str(runtime)+"/150", toUserName=itcaht_user_name)
379 get_screen_and_send("PAY-")
380 time.sleep(2)
381 try:
382 appdriver.find_element_by_name('跳过').click()
383 except:
384 pass
385 try:
386 appdriver.find_element_by_name('我知道了').click()
387 except:
388 pass
389 try:
390 appdriver.find_element_by_name('完成').click()
391 except:
392 pass
393
394 while 1:
395 try:
396 if runtime == 150:
397 get_screen_and_send("BUG-")
398 appdriver.back()
399 appdriver.back()
400 appdriver.back()
401 appdriver.quit()
402 time.sleep(2)
403 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
404 break
405 runtime +=1
406 break
407 except:
408 pass
409 time.sleep(8)
410 findmainweb()
411 try:
412 appdriver.find_element_by_name('跳过此版本').click()
413 except:
414 pass
415 temperror = 0
416 while 1:
417 try:
418 if temperror ==50:
419 get_screen_and_send("BUG-")
420 appdriver.back()
421 appdriver.back()
422 appdriver.back()
423 appdriver.quit()
424 time.sleep(2)
425 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
426 time.sleep(5)
427 appdriver.tap([(958, 2056), (958, 2056)], 100)
428 time.sleep(1)
429 appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/personalLayout"]').click()
430 break
431 temperror+=1
432 appdriver.tap([(971, 2150), (971, 2150)], 1)
433 appdriver.tap([(971, 2150), (971, 2150)], 1)
434 time.sleep(2)
435 appdriver.tap([(182, 1091), (182, 1091)], 1)
436 appdriver.tap([(182, 1091), (182, 1091)], 1)
437 break
438 except:
439 pass
440 time.sleep(3)
441 get_screen_and_send("ORDERSTATUS-")
442 checkbuy_info()
443 appdriver.back()
444 if runtime == 150:
445 itchat.send_msg("出现错误,正在尝试删除购物车货物", toUserName=itcaht_user_name)
446 time.sleep(2)
447 runtime = 0
448 findmainweb()
449 appdriver.tap([(971, 2150), (971, 2150)], 1)
450 appdriver.tap([(971, 2150), (971, 2150)], 1)
451 appdriver.tap([(779, 2150), (779, 2150)], 1)
452 appdriver.tap([(779, 2150), (779, 2150)], 1)
453 while 1:
454 try:
455 if runtime == 50:
456 break
457 runtime += 1
458 appdriver.find_element_by_name('管理').click() #待改
459 break
460 except:
461 pass
462 get_screen_and_send("PRICE-")
463 while 1:
464 try:
465 if runtime == 50:
466 break
467 runtime += 1
468 appdriver.find_element_by_name('全选').click() #待改
469 break
470 except:
471 pass
472 while 1:
473 try:
474 if runtime == 50:
475 break
476 runtime += 1
477 appdriver.find_element_by_id("cn.igxe:id/item_shopping_cart_commit_tv").click()
478 break
479 except:
480 pass
481 judgedel = 0
482 try:
483 appdriver.find_element_by_name('管理') #待改
484 judgedel = 1
485 except:
486 pass
487 if (judgedel == 0):
488 log("删除成功")
489 itchat.send_msg("购物车货物删除成功",toUserName=itcaht_user_name)
490 get_screen_and_send("PURCHASE-")
491 else:
492 log("仍然活着")
493 itchat.send_msg("购物车货物删除失败", toUserName=itcaht_user_name)
494 get_screen_and_send("PURCHASE-")
495 buyinfo = 0
496 def get_screen_and_send(pre):
497 try:
498 screenshot = time.ctime().replace(":", "-")
499 appdriver.get_screenshot_as_file(
500 u"C:\\Users\\86131\\Desktop\\bugscreen\\" + pre+screenshot + ".png")
501 itchat.send_image(u"C:\\Users\\86131\\Desktop\\bugscreen/" +pre+ screenshot + ".png",
502 toUserName=itcaht_user_name)
503 except:
504 sendmsg_2()
505 def judge_app_online_login_and_app_front():
506 global appdriver
507 global appcookies
508 judgelogin = 0
509 try:
510 appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/shoppingCartLayout"]').click()
511 except:
512 #itchat.send_msg("IGXEAPP不在前台 , 正在尝试重启",toUserName=itcaht_user_name)
513 try:
514 appdriver.quit()
515 except:
516 pass
517 time.sleep(1)
518 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
519 time.sleep(5)
520 #get_screen_and_send("STATE-")
521 time.sleep(2)
522 try:
523 if appdriver.find_element_by_id("cn.igxe:id/sign_in_button").text == "登录":
524 judgelogin = 1
525 itchat.send_msg("igxe未登录,正在尝试登录", toUserName=itcaht_user_name)
526 appdriver.find_element_by_id("cn.igxe:id/account").clear()
527 appdriver.find_element_by_id("cn.igxe:id/account").send_keys("******")
528 appdriver.find_element_by_id("cn.igxe:id/password").send_keys("xxxxxxxxxxx")
529 appdriver.hide_keyboard()
530 time.sleep(0.5)
531 appdriver.find_element_by_id("cn.igxe:id/sign_in_button").click()
532 except:
533 log("igxe已登录")
534 time.sleep(1)
535 try:
536 appdriver.find_element_by_xpath('//*[@resource-id="cn.igxe:id/personalLayout"]').click()
537 except:
538 pass
539 time.sleep(1)
540 try:
541 if judgelogin == 1:
542 if appdriver.find_element_by_id("cn.igxe:id/userName").text=="MB秒发123":
543 itchat.send_msg("登陆成功", toUserName=itcaht_user_name)
544 else:
545 itchat.send_msg("登陆失败",toUserName=itcaht_user_name)
546 get_screen_and_send("LOGIN-")
547 except:
548 pass
549 def keep_app_open():
550 global appdriver
551 try:
552 appdriver.tap([(-1, -1), (-1, -1)], 0)
553 except Exception as e:
554 pass
555 def logintoigxe():
556 keep_app_open()
557 global driver
558 driver.set_page_load_timeout(3)
559 try:
560 driver.get('https://www.igxe.cn/product/730/555335')
561 except:
562 pass
563 time.sleep(2)
564 try:
565 buy1 = driver.find_element_by_xpath(
566 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a[1]')
567 except:
568 pass
569 try:
570 buy2 = driver.find_element_by_xpath(
571 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a[2]')
572 except:
573 pass
574 try:
575 buy3 = driver.find_element_by_xpath(
576 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a')
577 except:
578 pass
579 try:
580 if buy1.text == '加入购物车':
581 buy = buy1
582 except:
583 pass
584 try:
585 if buy2.text == '加入购物车':
586 buy = buy2
587 except:
588 pass
589 try:
590 if buy3.text == '加入购物车':
591 buy = buy3
592 except:
593 pass
594 ActionChains(driver).click(buy).perform()
595 time.sleep(3)
596 click = driver.find_element_by_xpath('/html/body/div[4]/div[1]/div/div[1]/form/ul/li[2]')
597 ActionChains(driver).click(click).perform()
598 time.sleep(1)
599 key = driver.find_element_by_xpath('//*[@id="password"]')
600 key.send_keys('xxxxxxxxxxx')
601 username = driver.find_element_by_xpath('//*[@id="username"]')
602 username.send_keys('******321')
603 click = driver.find_element_by_xpath('//*[@id="login-btn"]')
604 ActionChains(driver).click(click).perform()
605 while 1:
606 try:
607 tses = driver.find_element_by_xpath(
608 '/html/body/div[3]/div[1]/div[1]/div/div/div[2]/ul/li[7]/a[2]')
609 if(tses.text=='MB秒发123'):
610 break
611 except:
612 pass
613 keep_app_open()
614 def sendmsg(zhenshi,strtime,output,chajia,earnrate,jinglirun):
615 host = 'smtp.163.com'
616 sender = '******321@163.com'
617 pwd = 'qq******123'
618 receiver = '652235835@qq.com'
619 body = zhenshi+strtime+'\n'+'价格:' + output+'\n' + 'buff差价:' + "%.2f" % float(chajia)+'\n' + '利率:' + "%.2f" % float(earnrate) + '%'+'\n'+'净利润:'+"%.2f" % float(jinglirun) + '\n'
620 msg = MIMEText(body)
621 msg['subject'] = '价格:' + output+'\n' '净利润:'+"%.2f" % float(jinglirun) + '\n' + zhenshi
622 msg['from'] = sender
623 msg['to'] = receiver
624 s = smtplib.SMTP_SSL(host)
625 s.login(sender, pwd)
626 s.sendmail(sender, receiver, msg.as_string())
627 def sendmsg_2():
628 host = 'smtp.163.com'
629 sender = '******321@163.com'
630 pwd = 'qq******123'
631 receiver = '******@qq.com'
632 body = "wdnmd"
633 msg = MIMEText(body)
634 msg['subject'] = "掉线了都"
635 msg['from'] = sender
636 msg['to'] = receiver
637 s = smtplib.SMTP_SSL(host)
638 s.login(sender, pwd)
639 s.sendmail(sender, receiver, msg.as_string())
640 def getcookies():
641 keep_app_open()
642 global cookies
643 log('get new cookie')
644 getcookiesdriver = webdriver.Firefox()
645 getcookiesdriver.maximize_window()
646 getcookiesdriver.set_page_load_timeout(3)
647 time.sleep(1)
648 try:
649 getcookiesdriver.get('https://www.igxe.cn/product/730/555335')
650 except:
651 pass
652 time.sleep(2)
653 try:
654 buy1 = getcookiesdriver.find_element_by_xpath(
655 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a[1]')
656 except:
657 pass
658 try:
659 buy2 = getcookiesdriver.find_element_by_xpath(
660 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a[2]')
661 except:
662 pass
663 try:
664 buy3 = getcookiesdriver.find_element_by_xpath(
665 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a')
666 except:
667 pass
668
669 try:
670 if buy1.text == '加入购物车':
671 buy = buy1
672 except:
673 pass
674 try:
675 if buy2.text == '加入购物车':
676 buy = buy2
677 except:
678 pass
679 try:
680 if buy3.text == '加入购物车':
681 buy = buy3
682 except:
683 pass
684 ActionChains(getcookiesdriver).click(buy).perform()
685 time.sleep(3)
686 click = getcookiesdriver.find_element_by_xpath('/html/body/div[4]/div[1]/div/div[1]/form/ul/li[2]')
687 ActionChains(getcookiesdriver).click(click).perform()
688 time.sleep(1)
689 key = getcookiesdriver.find_element_by_xpath('//*[@id="password"]')
690 key.send_keys('xxxxxxxxxxx')
691 username = getcookiesdriver.find_element_by_xpath('//*[@id="username"]')
692 username.send_keys('18580890781')
693 click = getcookiesdriver.find_element_by_xpath('//*[@id="login-btn"]')
694 ActionChains(getcookiesdriver).click(click).perform()
695 while 1:
696 try:
697 tses = getcookiesdriver.find_element_by_xpath(
698 '/html/body/div[3]/div[1]/div[1]/div/div/div[2]/ul/li[7]/a[2]')
699 if(tses.text=='Igxe85185222'):
700 break
701 except Exception as e:
702 pass
703 cookies = getcookiesdriver.get_cookies()
704 time.sleep(1)
705 getcookiesdriver.quit()
706 keep_app_open()
707 def judgecookie():
708 keep_app_open()
709 global cookies1
710 headers = {
711 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/71.0.3578.98 Safari/537.36',
712 }
713 url = 'https://www.igxe.cn/product/730/555335'
714 for cookie in cookies:
715 cookies1[cookie['name']] = cookie['value']
716 point = requests.get(url, cookies=cookies1, headers=headers,timeout = 10)
717 pattern = re.compile('.*?85185222.*?')
718 result1 = pattern.findall(point.text)
719 if result1!=[]:
720 log("spider with cookie online")
721 else:
722 log("spider offline,try to get new cookie")
723 getcookies()
724 keep_app_open()
725 def getbuyurl(tradeurl,hisurl,itemname):
726 try:
727 keep_app_open()
728 global itemsdict
729 global bufflowprice
730 global k
731 global first_url_count
732 global getcount
733 global count
734 global nofound
735 point = requests.get(hisurl,headers=header,timeout = 5,cookies=cookies1)
736 turn = point.content.decode(encoding='gbk',errors='ignore')
737 res = json.loads(turn)
738 content_list = []
739 for i in res['data']['items']:
740 content = {}
741 content['价格']=i['price']
742 content_list.append(float(content['价格']))
743 content_list.sort()
744 if len(content_list) >= 2:
745 pingjun = content_list[0] + content_list[1] + content_list[2]
746 pingjun = pingjun/3
747 hisprice = content_list[1]
748 if len(content_list) == 1:
749 hisprice = content_list[0]
750 if len(content_list) == 0:
751 hisprice = 0
752 point = requests.get(tradeurl, headers=header,timeout = 5,cookies=cookies1)
753 turn = point.content.decode(encoding='gbk', errors='ignore')
754 res = json.loads(turn)
755 sum=1
756 global url
757 url = tradeurl
758 url = url.replace('https://buff.163.com/api/market/goods/sell_order?game=csgo&goods_id=', '')
759 url = url.replace('&page_num=1&sort_by=default&mode=&allow_tradable_cooldown=1', '')
760 url = url.replace('\n', '')
761 url = 'https://buff.163.com/market/goods?goods_id=' + url + '&from=market#tab=selling' + '\n'
762 for i in res['data']['items']:
763 content = {}
764 content['价格']=i['price']
765 if sum == 1:
766 userid = i['user_id']
767 price1 = float(content['价格'])
768 itemsdict[itemname] = price1
769 itemsdict['price'+itemname]=pingjun
770 if sum == 2:
771 price2 = float(content['价格'])
772 chajia = price2 - price1
773 earnrate = chajia / itemsdict['price'+itemname]
774 earnrate *= 100
775 sum+=1
776 if sum == 3:
777 if hisprice > 0:
778 if earnrate > 7:
779 if price1*1.03<pingjun:
780 if price1*1.05<price2:
781 getcount +=1
782 with open('buyforself.txt','a',encoding='utf-8') as z:
783 log(url.replace('\n',''))
784 log('价格:'+ str(price1)+' 差价:'+str(chajia)+' 利率:'+str(earnrate)+'%')
785 #itchat.send_msg(itemname,toUserName=itcaht_user_name_sam)
786 #itchat.send_msg(url.replace('\n',''), toUserName=itcaht_user_name_sam)
787 #itchat.send_msg('价格:'+ str(price1)+' 差价:'+str(chajia)+' 利率:'+str(earnrate)+'%',toUserName=itcaht_user_name_sam)
788 z.write(url)
789 z.write('价格:'+ str(price1)+' 差价:'+str(chajia)+' 利率:'+str(earnrate)+'%'+'\n')
790 except Exception as e:
791 pass
792 buffcount=0
793 def getbuyurl_hc(tradeurl,hisurl,itemname):
794 while 1:
795 try:
796 global buffcount
797 global itemsdict
798 global bufflowprice
799 global k
800 global first_url_count
801 global getcount
802 global count
803 global nofound
804 global buff_judge_exist
805 keep_app_open()
806 if (tradeurl in buff_judge_exist.keys()):
807 break
808 point = requests.get(hisurl,headers=header,timeout = 5,cookies=cookies1)
809 turn = point.content.decode(encoding='gbk',errors='ignore')
810 res = json.loads(turn)
811 content_list = []
812 for i in res['data']['items']:
813 content = {}
814 content['价格']=i['price']
815 content_list.append(float(content['价格']))
816 content_list.sort()
817 if len(content_list) >= 2:
818 pingjun = content_list[0] + content_list[1] + content_list[2]
819 pingjun = pingjun/3
820 hisprice = content_list[1]
821 if len(content_list) == 1:
822 hisprice = content_list[0]
823 if len(content_list) == 0:
824 hisprice = 0
825 point = requests.get(tradeurl, headers=header,timeout = 5,cookies=cookies1)
826 turn = point.content.decode(encoding='gbk', errors='ignore')
827 res = json.loads(turn)
828 sum=1
829 global url
830 url = tradeurl
831 url = url.replace('https://buff.163.com/api/market/goods/sell_order?game=csgo&goods_id=', '')
832 url = url.replace('&page_num=1&sort_by=default&mode=&allow_tradable_cooldown=1', '')
833 url = url.replace('\n', '')
834 url = 'https://buff.163.com/market/goods?goods_id=' + url + '&from=market#tab=selling' + '\n'
835 for i in res['data']['items']:
836 content = {}
837 content['价格']=i['price']
838 if sum == 1:
839 userid = i['user_id']
840 price1 = float(content['价格'])
841 itemsdict[itemname] = price1
842 itemsdict['price'+itemname]=pingjun
843 if sum == 2:
844 price2 = float(content['价格'])
845 chajia = price2 - price1
846 earnrate = chajia / itemsdict['price'+itemname]
847 earnrate *= 100
848 sum+=1
849 if sum == 3:
850 if hisprice > 0:
851 if earnrate > 7:
852 if price1*1.03<pingjun:
853 if price1*1.05<price2:
854 getcount +=1
855 with open('buyforself.txt','a',encoding='utf-8') as z:
856 log(url.replace('\n',''))
857 log('价格:'+ str(price1)+' 差价:'+str(chajia)+' 利率:'+str(earnrate)+'%')
858 #itchat.send_msg(itemname,toUserName=itcaht_user_name_sam)
859 #itchat.send_msg(url.replace('\n',''), toUserName=itcaht_user_name_sam)
860 #itchat.send_msg('价格:'+ str(price1)+' 差价:'+str(chajia)+' 利率:'+str(earnrate)+'%',toUserName=itcaht_user_name_sam)
861 z.write(url)
862 z.write('价格:'+ str(price1)+' 差价:'+str(chajia)+' 利率:'+str(earnrate)+'%'+'\n')
863 buff_judge_exist[tradeurl]=1
864 buffcount +=1
865 print("\r"+str(buffcount)+'/840',end='')
866 break
867 except Exception as e:
868 pass
869 def igxegetdict(fpoint):
870 try:
871 state = {
872 "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/39.0.2171.71 Safari/537.36"}
873 sellhistoryurl = fpoint.readline()
874 tradeurl = fpoint.readline()
875 point = requests.get(sellhistoryurl, headers=state, timeout=5,cookies=cookies1)
876 turn = point.content.decode(encoding='gbk', errors='ignore')
877 js = json.loads(turn)
878 temp = js['data']
879 content_list = []
880 for i in temp:
881 content = {}
882 content['价格'] = i['unit_price']
883 itemname = i['name']
884 content_list.append(float(content['价格']))
885 content_list.sort()
886 zhenshi = itemname.replace(' ', '') + '\n'
887 if len(content_list) >= 2:
888 hisprice = content_list[1]
889 pingjun = content_list[0] + content_list[1] + content_list[2]
890 pingjun = pingjun / 3
891 itemsdict['pingjun' + zhenshi] = pingjun
892 itemsdict['hisprice' + zhenshi] = hisprice
893 # log('pingjun'+zhenshi+"已录入, 值为"+str(itemsdict['pingjun'+zhenshi]))
894 # log('hisprice'+zhenshi+"已录入, 值为"+str(itemsdict['hisprice'+zhenshi]))
895 if len(content_list) == 1:
896 hisprice = content_list[0]
897 itemsdict['pingjun' + zhenshi] = 0
898 itemsdict['hisprice' + zhenshi] = hisprice
899 if len(content_list) == 0:
900 hisprice = 0
901 itemsdict['pingjun' + zhenshi] = 0
902 itemsdict['hisprice' + zhenshi] = hisprice
903 first_url_count += 1
904 except :
905 pass
906 def igxegetbuyurl(tradeurl):
907 try:
908 global itemsdict
909 global getcount
910 global first_url_count
911 global count
912 global nofound
913 global driver
914 global buyprice
915 global fbuyprice
916 global buyinfo
917 global driver
918 global nowtime
919 global endtime
920 global nowprice
921 global itemcount
922 if buyinfo ==0:
923 nowtime = datetime.now()
924 try:
925 driver.get(tradeurl.replace("/trade", ""))
926 except:
927 pass
928 itemcount +=1
929 strtime = time.strftime('%H:%M:%S', time.localtime(time.time()))
930 headers = {
931 "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/39.0.2171.71 Safari/537.36"}
932 ret = requests.get(tradeurl, headers=headers,timeout = 3,cookies=cookies1)
933 r = ret.content.decode(encoding='gbk',errors='ignore')
934 res = json.loads(r)
935 content_list = []
936 sum=1
937 price1=0.0
938 price2=0.0
939 for i in res['d_list']:
940 content = {}
941 content['价格'] = i['unit_price']
942 content['名字'] = i['name']
943 content['steamuid']=i['steam_uid']
944 content_list.append(content)
945 if sum == 1:
946 itemname = i['name']
947 steamuid = i['steam_uid']
948 price1 = float(content['价格'])
949 if sum == 2:
950 price2 = float(content['价格'])
951 sum+=1
952 if sum == 3:
953 zhenshi = itemname.replace(' ','')+'\n'
954 if not (zhenshi in itemsdict.keys()):
955 log(itemname+"-------------查无字典")
956 break
957 chajia = itemsdict[zhenshi] - price1
958 log("("+str(itemcount)+") "+itemname + " " + "buff价格:" + str(itemsdict[zhenshi]) + " igxe价格:" + str(price1)+" 差价:"+str(chajia))
959 jinglirun = chajia - (itemsdict[zhenshi]*0.035)
960 earnrate = chajia / itemsdict[zhenshi]
961 earnrate *= 100
962 if itemsdict['hisprice' + zhenshi] > 0:
963 if price1*1.03<itemsdict['pingjun' + zhenshi]:
964 if price1 * 1.03 < price2:
965 if price1 * 1.03 < itemsdict['price' + zhenshi]:
966 if earnrate > 3:
967 #itchat.send_msg(tradeurl.replace("/trade", "")+'价格:' + str(price1) + ' buff差价:' + str(chajia) + ' 利率:' + str(earnrate) + '%'+' 净利润:'+str(jinglirun),toUserName=itcaht_user_name_sam)
968 #itchat.send_msg(zhenshi,toUserName=itcaht_user_name_sam)
969 getcount += 1
970 log(tradeurl.replace("/trade", "")+'价格:' + str(price1) + ' buff差价:' + str(chajia) + ' 利率:' + str(earnrate) + '%'+' 净利润:'+str(jinglirun))
971 if earnrate >= defearnrate and buyinfo ==1:
972 itchat.send_msg("已经有一个自动购买在运行",toUserName=itcaht_user_name)
973 if earnrate >= defearnrate and buyinfo ==0:
974 buyinfo = 1
975 log("get real msg!")
976 output = "%.2f" % float(price1)
977 itchat.send_msg(zhenshi+strtime+'\n'+'价格:' + str(output)+'\n' + 'buff差价:' + str(chajia)+'\n' + '利率:' + str(earnrate) + '%'+'\n'+'净利润:'+str(jinglirun) + '\n', toUserName=itcaht_user_name)
978 itchat.send_msg("卖家Steam库存:"+'\n'+"https://steamcommunity.com/profiles/"+steamuid+"/inventory/#730", toUserName=itcaht_user_name)
979 if price1<3500 and earnrate > 8.5 :
980 itchat.send_msg("物品符合条件,即将自动购买", toUserName=itcaht_user_name)
981 else:
982 itchat.send_msg("物品不符合自动购买条件,请手动登陆进行购买", toUserName=itcaht_user_name)
983 errortime = 0
984 while 1:
985 try:
986 errortime += 1
987 if errortime==1000:
988 itchat.send_msg("火狐购买页面未能加载",toUserName=itcaht_user_name)
989 buyinfo = 0
990 get_screen_and_send_web("WEB-")
991 break
992 getpriceelement = driver.find_element_by_xpath(
993 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[6]/span')
994 strprice = "%.2f" % float(price1)
995 eleprice = str(getpriceelement.text)
996 eleprice = eleprice.replace("¥", '')
997 if eleprice == strprice:
998 buy = 0
999 try:
1000 buy1 = driver.find_element_by_xpath(
1001 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a[1]')
1002 except:
1003 pass
1004 try:
1005 buy2 = driver.find_element_by_xpath(
1006 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a[2]')
1007 except:
1008 pass
1009 try:
1010 buy3 = driver.find_element_by_xpath(
1011 '/html/body/div[3]/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[7]/a')
1012 except:
1013 pass
1014 try:
1015 if buy1.text == '加入购物车':
1016 buy = buy1
1017 except:
1018 pass
1019 try:
1020 if buy2.text == '加入购物车':
1021 buy = buy2
1022 except:
1023 pass
1024 try:
1025 if buy3.text == '加入购物车':
1026 buy = buy3
1027 except:
1028 pass
1029 try:
1030 if buy.text != "加入购物车":
1031 itchat.send_msg("加入购物车失败",toUserName=itcaht_user_name)
1032 except:
1033 itchat.send_msg("加入购物车失败", toUserName=itcaht_user_name)
1034 ActionChains(driver).click(buy).perform()
1035 time.sleep(0.5)
1036 fbuyprice = price1
1037 buyprice = "%.2f" % float(fbuyprice)
1038 endtime = datetime.now()
1039 app_autobuy()
1040 else:
1041 log("找不到啦")
1042 buyinfo = 0
1043 time.sleep(2)
1044 break
1045 except Exception as e:
1046 log(e)
1047 break
1048 first_url_count += 1
1049 except Exception as e:
1050 pass
1051 def after_logout():
1052 log("退出后调用")
1053 sendmsg_2()
1054 def check_exsit(process_name):
1055 WMI = win32com.client.GetObject('winmgmts:')
1056 processCodeCov = WMI.ExecQuery('select * from Win32_Process where Name="%s"' % process_name)
1057 if len(processCodeCov) > 0: # 判断操作 www.iplaypy.com
1058 return 1
1059 else:
1060 return 0
1061 def main():
1062 time.sleep(5)
1063 judge_app_online_login_and_app_front()
1064 judgecookie()
1065 logintoigxe()
1066 global itemcount
1067 global fbuyprice
1068 global buyprice
1069 global driver
1070 global nofound
1071 global getcount
1072 global first_url_count
1073 global sleep1
1074 global sleep2
1075 global count
1076 global itemsdict
1077 global appdriver
1078 global nowprice
1079 global htmlid_dict
1080 global goodsid_dict
1081 itemcount = calc_count()
1082 log('缓冲阶段:')
1083 #driver.get("https://www.bilibili.com/")
1084 #for i in range(1, 200):
1085 # driver.find_element_by_xpath('/html/body').send_keys(Keys.DOWN)
1086 #time.sleep(10)
1087 driver.set_page_load_timeout(0.5)
1088 for i in range(0,1):
1089 kk = open('buffdataurl', 'r', encoding='utf-8')
1090 with open('buyforself.txt', 'w', encoding='utf-8') as wtf:
1091 pass
1092 first_url_count = 1
1093 count = 810
1094 thread = []
1095 for i in range(0, count):
1096 tradeurl = kk.readline()
1097 hisurl = kk.readline()
1098 itemname = kk.readline()
1099 t = threading.Thread(target=getbuyurl_hc,
1100 args=(tradeurl, hisurl, itemname,))
1101 thread.append(t)
1102 for i in range(0, count):
1103 time.sleep(sleep1)
1104 thread[i].start()
1105 for i in range(0, count):
1106 thread[i].join()
1107 kk.close()
1108 sleep1=0.15
1109 for i in range(0, 3):
1110 sleep2 = 0
1111 count = 775
1112 thread = []
1113 ff = open('igxedataurl', 'r')
1114 for i in range(0, count):
1115 t = threading.Thread(target=igxegetdict,
1116 args=(ff,))
1117 thread.append(t)
1118 for i in range(0, count):
1119 time.sleep(sleep2)
1120 thread[i].start()
1121 for i in range(0, count):
1122 thread[i].join()
1123 ff.close()
1124 log('脚本开始:')
1125 while 1:
1126 try:
1127 judge_app_online_login_and_app_front()
1128 try:
1129 driver.set_page_load_timeout(10)
1130 driver.get('https://www.igxe.cn/sell/730')
1131 except Exception as e:
1132 print(e)
1133 log("火狐加载超时")
1134 if not check_exsit("firefox.exe"):
1135 driver = webdriver.Firefox()
1136 driver.set_page_load_timeout(10)
1137 driver.maximize_window()
1138 logintoigxe()
1139 driver.set_page_load_timeout(0.5)
1140 judgecookie()
1141 count = 775
1142 thread = []
1143 ff = open('igxedataurl', 'r')
1144 for i in range(0, count):
1145 t = threading.Thread(target=igxegetdict,
1146 args=(ff,))
1147 thread.append(t)
1148 for i in range(0, count):
1149 time.sleep(sleep2)
1150 thread[i].start()
1151 for i in range(0, count):
1152 thread[i].join()
1153 # log("000000000000000")
1154 ff.close()
1155 kk = open('buffdataurl', 'r', encoding='utf-8')
1156 with open('buyforself.txt', 'w', encoding='utf-8') as wtf:
1157 pass
1158 first_url_count = 1
1159 count = 810
1160 thread = []
1161 for i in range(0,count):
1162 tradeurl = kk.readline()
1163 hisurl = kk.readline()
1164 itemname = kk.readline()
1165 t = threading.Thread(target=getbuyurl,
1166 args=(tradeurl,hisurl,itemname,))
1167 thread.append(t)
1168 for i in range(0, count):
1169 time.sleep(sleep1)
1170 thread[i].start()
1171 for i in range(0, count):
1172 thread[i].join()
1173 kk.close()
1174 # log("111111111111111")
1175 goodsid_dict = {}
1176 htmlid_dict = {}
1177 igxe = open("igxedataurl", "r", encoding='utf-8')
1178 for i in range(0, 775):
1179 first = igxe.readline()
1180 second = igxe.readline()
1181 first = first.replace("\n", "")
1182 first = first.replace('https://www.igxe.cn/product/get_product_sales_history/730/', '')
1183 goodsid_dict[first] = 1
1184 times = 0
1185 igxe.close()
1186 updatealiypay()
1187 for i in range(0,35):
1188 try:
1189 driver.get('https://www.igxe.cn/product/730/3955') #
1190 except:
1191 pass
1192 appdriver.tap([(971, 2150), (971, 2150)], 1)
1193 appdriver.tap([(971, 2150), (971, 2150)], 1)
1194 appdriver.tap([(779, 2150), (779, 2150)], 1)
1195 appdriver.tap([(779, 2150), (779, 2150)], 1)
1196 findmainweb()
1197 fbuyprice = 0
1198 nofound = 0
1199 getcount = 0
1200 sleep1=0.0
1201 sleep2=0
1202 now = datetime.now()
1203 for tmp in range(0,20):
1204 try:
1205 judgetime()
1206 times += 1
1207 tradeurl = "https://www.igxe.cn/csgo/730?is_buying=0&is_stattrak%5B%5D=0&is_stattrak%5B%5D=0&sort=3&ctg_id=0&type_id=0&page_no=1&page_size=40&rarity_id=0&exterior_id=0&quality_id=0&capsule_id=0&_t=1566486610641"
1208 point = requests.get(tradeurl, headers=header, timeout=1)
1209 pattern = re.compile('"/product/730/.*?"')
1210 result1 = pattern.findall(point.text)
1211 sum = 0
1212 for i in result1:
1213 goodsid = i.replace('"/product/730/', '')
1214 goodsid = goodsid.replace('"', "")
1215 if not goodsid in htmlid_dict.keys() or htmlid_dict[goodsid] == 0:
1216 htmlid_dict[goodsid] = 1
1217 sum += 1
1218 if goodsid in goodsid_dict.keys():
1219 url = "https://www.igxe.cn/product/trade/730/" + goodsid
1220 igxegetbuyurl(url)
1221 if times != 1 and sum == 40:
1222 htmlid_dict = {}
1223 times = 0
1224 tradeurl = "https://www.igxe.cn/csgo/730?is_buying=0&is_stattrak%5B%5D=0&is_stattrak%5B%5D=0&sort=3&ctg_id=0&type_id=0&page_no=2&page_size=40&rarity_id=0&exterior_id=0&quality_id=0&capsule_id=0&_t=1566559812876"
1225 point = requests.get(tradeurl, headers=header, timeout=1)
1226 pattern = re.compile('"/product/730/.*?"')
1227 result1 = pattern.findall(point.text)
1228 for i in reversed(result1):
1229 goodsid = i.replace('"/product/730/', '')
1230 goodsid = goodsid.replace('"', "")
1231 if goodsid in htmlid_dict.keys() and htmlid_dict[goodsid] == 1:
1232 htmlid_dict[goodsid] = 0
1233 except Exception as e:
1234 timeprint(e)
1235 end = datetime.now()
1236 except:
1237 pass
1238 nowprice = 0
1239 nowtime = 0
1240 endtime = 0
1241 fbuyprice = 0
1242 buyprice = 0
1243 nofound = 0
1244 sleep1 = 0.25 #0.05 0.25
1245 sleep2 = 0.0 #0.03 0.1
1246 defearnrate = 8.5
1247 hisprice = 0
1248 getcount = 0
1249 first_url_count = 0
1250 itemsdict = {}
1251 buff_judge_exist = {}
1252 itemcount = 0
1253 header = {
1254 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Firefox/71.0.3578.98 Safari/537.36',
1255 }
1256 cookies = \
1257 cookies = \
1258 []
1259 appcookies = \
1260 []
1261 cookies1 = {}
1262 desired_caps = {
1263 'platformName': 'Android',
1264 'deviceName': 'ea50da1f',
1265 'platformVersion': '9',
1266 'appPackage': 'cn.igxe',
1267 'appActivity': 'cn.igxe.ui.MainActivity',
1268 'noReset':'true',
1269 'fullReset' : 'false',
1270 'disableAndroidWatchers':'true'
1271 }
1272 itchat.auto_login(hotReload=True,exitCallback=after_logout)
1273 send_userid='Miraculous_B'
1274 itcaht_user_name = itchat.search_friends(name=send_userid)[0]['UserName']
1275 buyinfo = 0
1276 driver = webdriver.Firefox()
1277 driver.maximize_window()
1278 driver.set_page_load_timeout(10)
1279 os.system('taskkill /f /im "adb.exe"')
1280 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
1281 appdriver.quit()
1282 appdriver = appwebdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动APP
1283 if __name__ == '__main__':
1284 freeze_support()
1285 main()

IGXE搬砖项目的更多相关文章

  1. 目标检测---搬砖一个ALPR自动车牌识别的环境

    目标检测---搬砖一个ALPR自动车牌识别的环境 参考License Plate Detection and Recognition in Unconstrained Scenarios@https: ...

  2. 如何使用银联卡充值美元到BTC-E以及比特币搬砖教程

    1,名词解释 搬砖:就是在价格低的平台买入比特币,然后转移到价格高的平台卖出, 一般而言,BTC-E是国外三大比特币交易所中比特币单价最低的一个站,因为其需要用美元充值,相对不方便.之前国内比特币价格 ...

  3. 网络搬砖是件苦力活 CMS推荐GHOS博客程序

    搬砖不是技术活,而是苦力(bi)活,富有技术含量的苦力活说不定就是一门可以持续的生意. 我们不生产内容,我们只是互联网的内容搬运工,这是大部分不具备原创能力个人站长的心声.虽然原创能力不够,但是服务目 ...

  4. 【NOI2019模拟】搬砖

    [NOI2019模拟]搬砖 Description 小火车很穷,只好去搬砖了. 小火车被工头要求搭建\(n\)座塔,第i个高度为\(H_i\),也就是由\(H_i\)块砖头组成.每次小火车可以携带至多 ...

  5. Software-Defined Networking之搬砖的故事

    在很久很久以前,有一个村子. 村里的每一户,都有一个男人和一个女人. 每一户,都以搬砖为生. 从不同的地方,搬到不同的地方. 男人负责搬砖,女人负责告诉男人往哪搬. 每个家庭,都服从村委会的指挥. 村 ...

  6. PS官方正式中文版(搬砖分享)

    https://pan.baidu.com/s/1c3IdQq0 PS官方正式中文版(搬砖分享) 注意事项: 1.安装开始前请先断网,在成功破解激活前请全程断网: 2.安装完成后先试运行软件一次,然后 ...

  7. 中国用户通过rchange用银联充值到PerfectMoney再给BTC-E充值进行搬砖的方法

    最近迷上了比特币这个疯狂的东西,相信很多技术人员都感兴趣. 比特币.莱特币钱包下载和把数据迁移到C盘以外其他盘的方法. 莱特币和山寨币的原理跟比特币基本上一样,可以参考这个方法进行,莱特币的钱包数据迁 ...

  8. NOJ——1656搬砖(DP)

    [1656] 搬砖 时间限制: 2000 ms 内存限制: 65535 K 问题描述 开学了,万恶的大二学长们又要领着大一的鲜肉们一起敲代码搬砖了,这不,著名的杨神拿着n块砖头,当然他把这n块砖头的重 ...

  9. 比特币搬砖对冲策略Python源码

    策略复制地址:https://www.fmz.com/strategy/21023 策略原理 比特币搬砖策略是入门程序化交易的基础策略.原理简单,是新手尝试程序化的好选择,在其黄金时期,比特币搬砖也带 ...

随机推荐

  1. 解决No Python interpreter for the object

    1. File --> Settings 2. Project:[项目名] --> Project Interpreter --> 点击齿轮 3. 点击齿轮出现Add,点击Add 4 ...

  2. “体检医生”黑科技|让AI开发更精准,ModelArts更新模型诊断功能

    摘要:华为云AI开发平台ModelArts黑科技加持AI研发,让模型开发更高效.更简单,降低AI在行业的落地门槛.全面的可视化评估以及智能诊断功能,使得开发者可以直观了解模型各方面性能,从而进行针对性 ...

  3. Spring-IOC注解编程

    这里的注解是最初级的一些注解,掌握了之后再学习其它的注解 注解扫描 <?xml version="1.0" encoding="UTF-8"?> & ...

  4. 小白经典CNN论文复现系列(一):LeNet1989

    小白的经典CNN复现系列(一):LeNet-1989 之前的浙大AI作业的那个系列,因为后面的NLP的东西我最近大概是不会接触到,所以我们先换一个系列开始更新博客,就是现在这个经典的CNN复现啦(。・ ...

  5. Centos7无网络下安装mysql5.7——mysql-rpm安装

    本教程指将mysql安装到系统默认目录下,如想自定义修改目录,请在rpm安装时自行修改: rpm -ivh --prefix= /opt xxx.rpm #将xxx.rpm安装到/opt下 一.下载m ...

  6. 图解SparkStreaming与Kafka的整合,这些细节大家要注意!

    前言 老刘是一名即将找工作的研二学生,写博客一方面是复习总结大数据开发的知识点,一方面是希望帮助更多自学的小伙伴.由于老刘是自学大数据开发,肯定会存在一些不足,还希望大家能够批评指正,让我们一起进步! ...

  7. 数仓建设中最常用模型--Kimball维度建模详解

    数仓建模首推书籍<数据仓库工具箱:维度建模权威指南>,本篇文章参考此书而作.文章首发公众号:五分钟学大数据,公众号中发送"维度建模"即可获取此书籍第三版电子书 先来介绍 ...

  8. Dota游戏匹配的所有组合

    在Dota游戏中有一种匹配玩法,任意5人以下玩家组队,加入匹配系统,由系统组合出5人 vs 5人的组合进行游戏,比如2人+3人  vs 1人+4人.抽象出这个问题,就变成两边各有m个玩家,最多允许n个 ...

  9. CopyOnWriteArrayList设计思路与源码分析

    CopyOnWriteArrayList实现了List接口,RandomAccess,Cloneable,Serializable接口. CopyOnWriteArrayList特性 1.线程安全,在 ...

  10. ubuntu环境下搭建Hadoop集群中必须需要注意的问题

    博主安装的hadoop是3.1.3这里是按照厦门大学那个博客安装的,在安装与启动过程中,费了不少事,特此记录一下问题. 安装的连接: 安装环境:http://dblab.xmu.edu.cn/blog ...