- Статус
- Оффлайн
- Регистрация
- 21 Июн 2019
- Сообщения
- 168
- Реакции
- 14
Python:
import requests
import json
import wget
import os,sys,time,random
from stem import Signal
from stem.control import Controller
from fake_useragent import UserAgent
import re
import multiprocessing
proxies = {
'http': 'socks5://127.0.0.1:9050',
'https': 'socks5://127.0.0.1:9050'
}
class Weapon:
name=''
skin=''
lowest_price=0.0
median_price=0.0
def __init__(self,sname,skin,price1,price2):
self.name=sname
self.skin=skin
self.lowest_price=float(price1.replace("$",''))
self.median_price=float(price2.replace("$",''))
def set_name(self,sname):
name=sname
def set_lowest_price(self,price):
lowest_price=price.replace("$",'')
def set_median_price(self,price):
median_price=price.replace("$",'')
def get_name(self):
return self.name
def get_lowest_price(self):
return self.lowest_price
def get_median_price(self):
return self.median_price
def change_ip(prev_ip):
while(prev_ip==requests.get('http://icanhazip.com/',proxies=proxies).text.strip()):
with Controller.from_port(port=9051) as controller:
controller.authenticate(password='123')
controller.signal(Signal.NEWNYM)
def get(weapon,skin,quality):
prev_ip=requests.get('http://icanhazip.com/',proxies=proxies).text.strip()
headers = { 'User-Agent': UserAgent().random }
change_ip(prev_ip)
response = requests.get('https://steamcommunity.com/market/priceoverview/?market_hash_name='+weapon+'%20%7C%20'+skin+'%20%28'+quality+'%29&appid=730¤cy=1',proxies=proxies,headers=headers)
while (response.status_code!=500 and response.status_code!=200):
prev_ip = requests.get('http://icanhazip.com/', proxies=proxies).text.strip()
change_ip(prev_ip)
response = requests.get('https://steamcommunity.com/market/priceoverview/?market_hash_name=' + weapon + '%20%7C%20' + skin + '%20%28' + quality + '%29&appid=730¤cy=1',proxies=proxies, headers=headers)
return json.loads(response.text)
vector=list()
skins=list()
weapons_list=list()
def get_weapons():
weapons = open("weapons.txt", "r")
for weapon in weapons:
weapons_list.append(weapon.replace("\n",""))
def getandcheck_url_1():
time.sleep(random.randint(1, 5))
for i in range(int((len(weapons_list)/2)-1)):
for y in range(int((len(skins)/2)-1)):
item=re.sub("^\s+|\n|\r|\s+$", '', skins[y])
dict=get(weapons_list[i].replace("\n",""),item,'Minimal Wear')
print('1',weapons_list[i].replace("\n",""),item,requests.get('http://icanhazip.com/',proxies=proxies).text.strip(),dict["success"],"\n")
if (dict["success"] == True):
if dict != None:
weapons=Weapon(weapons_list[i].replace("\n",""),item,dict['lowest_price'],dict['median_price'])
vector.append(weapons)
return vector
def getandcheck_url_2():
time.sleep(random.randint(1,5))
for i in range(int(len(weapons_list)/2),(int(len(weapons_list)-(len(weapons_list)/2))-1)):
for y in range(int((len(skins) / 2)),int((len(skins)-(len(skins) / 2)))):
item = re.sub("^\s+|\n|\r|\s+$", '', skins[y])
dict = get(weapons_list[i].replace("\n", ""), item, 'Minimal Wear')
print(weapons_list[i].replace("\n", ""), item, requests.get('http://icanhazip.com/', proxies=proxies).text.strip(),
dict["success"], "\n")
if (dict["success"] == True):
if dict != None:
weapons = Weapon(weapons_list[i].replace("\n", ""), item, dict['lowest_price'], dict['median_price'])
vector.append(weapons)
return vector
def main():
get_weapons()
parrsing_all_skins()
t1 = multiprocessing.Process(target=getandcheck_url_1)
t2=multiprocessing.Process(target=getandcheck_url_2)
t1.start()
t2.start()
def parrsing_all_skins():
try:
os.remove("item_index.txt")
except OSError as error:
pass
wget.download("https://raw.githubusercontent.com/adamb70/CSGO-skin-ID-dumper/master/item_index.txt")
print(chr(27) + "[2J")
with open("item_index.txt","r") as notforrmated:
for line in notforrmated:
flag=False
skin=""
for i in range(line.__len__()):
if (line[i]==" "):
flag=True
continue
if (flag==True):
skin+=line[i]
skins.append(skin.replace("\n",""))
if __name__ == '__main__':
main()