Я пытаюсь очистить страницу, чтобы получить 3 разных фрагмента информации, каждая из которых встречается на странице 50 раз. При запуске программы, если я печатаю время, необходимое для выполнения функции выбора css, время замедляется, и медленнее по всей странице, и это продолжается при очистке других страниц. Почему это может происходить? После того, как 13 страниц соскребли, скорость замедлилась примерно на 5x
edit: я также проверил это, используя al oop, и то же самое происходит
def scrapepage_thread():
global scrapetime
start = time.time()
now = datetime.datetime.now()
name = driver.find_elements_by_class_name("Pic__container__name___26P8X")
sell = driver.find_elements_by_id("sell")
buy = driver.find_elements_by_id("buy")
split=1
names = [name[i:i + split] for i in range(0, len(name), split)]
buys = [buy[i:i + split] for i in range(0, len(buy), split)]
sells = [sell[i:i + split] for i in range(0, len(sell), split)]
list = [['date','name',0,0] for i in range(len(name))]
def do_name(name,index):
starting_index = index*split
for i in range(0,len(name)):
toAdd=[]
list[starting_index][0] = date
start = time.time()
test = name[i].find_element_by_css_selector('a').get_attribute('href')
list[starting_index][1] = test.rsplit('/', 1)[-1]
starting_index+=1
def do_buy(buy,index):
starting_index = index*split
for i in range(0,len(buy)):
list[starting_index][2] = buy[i].text[1:]
starting_index+=1
def do_sell(sell,index):
starting_index = index*split
for i in range(0,len(sell)):
list[starting_index][3] = sell[i].text[1:]
starting_index+=1
i=0
threads=[]
for i in range(0,len(names)):
threads.append(threading.Thread(target=do_name, args=(names[i],i)))
threads.append(threading.Thread(target=do_sell, args=(sells[i],i)))
threads.append(threading.Thread(target=do_buy, args=(buys[i],i)))
for j in threads:
j.start()
for j in threads:
j.join()