Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Помогите с асихронными процессами PYTHON

  • Автор темы Автор темы minicx
  • Дата начала Дата начала
-cr@cked by NN-
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
21 Июн 2019
Сообщения
168
Реакции
14
Python:
Expand Collapse Copy
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&currency=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&currency=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()
я не могу сделать асихронное обрабатывание функций
 
Назад
Сверху Снизу