主要的赚钱方式和倒爷其实是差不多的,自动检测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()

最新文章

  1. Python学习记录day4
  2. 使用scrapy创建工程
  3. jQuery 简介和安装
  4. Ext.Net TextField Enter事件
  5. spring + maven +testng 测试常见依赖包问题
  6. BZOJ 1996: [Hnoi2010]chorus 合唱队(dp)
  7. 网页WEB打印控件
  8. Spring之IOC容器加载初始化的方式
  9. windows和linux删除文件方法
  10. 如何设置SecureCRT快捷键
  11. Java IO(一):IO和File
  12. New UWP Community Toolkit - RotatorTile
  13. MySQL存储引擎InnoDB与MyISAM的区别
  14. Python微信公众号开发—小白篇
  15. 24. Swap Nodes in Pairs 链表每2个点翻转一次
  16. 配置named服务之前的 相关术语意思
  17. 用MVVM模式开发中遇到的零散问题总结(1)
  18. 关于epoll的IO模型是同步异步的一次纠结过程
  19. hdu 1723 DP/递推
  20. 我的Java之旅——第一个Java程序

热门文章

  1. Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
  2. Backdrop Filter
  3. 红黑树规则,TreeSet原理,HashSet特点,什么是哈希值,HashSet底层原理,Map集合特点,Map集合遍历方法
  4. datagrid 根据指定参数重新加载数据
  5. ExecutionListener,TaskListener流程监听 和任务监听
  6. San Francisco Crime Classification非数值性多分类问题
  7. python对离散数据进行编码
  8. git 只提交部分文件 拉取pull远程仓库
  9. 自动化运维工具-Ansible之5-流程控制
  10. python安装库报错的处理方法