Advertisement
repente

Untitled

Jan 7th, 2020
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. from bs4 import BeautifulSoup
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.support.ui import WebDriverWait
  5. from selenium.webdriver.support import expected_conditions as EC
  6. from selenium.webdriver.common.keys import Keys
  7. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  8. from socket import *
  9. import os
  10. import asyncio # test oop
  11. import time
  12.  
  13. driver = webdriver.Firefox()
  14. driver.get('https://hawkbets.com/matches/recent') #
  15.  
  16. step = 0
  17. z = 0
  18. en = 0
  19. time_list = []
  20. try:
  21. elements = driver.find_elements_by_css_selector('a.wrap ')
  22. for elem in elements:
  23. pass
  24. # elem.send_keys(Keys.CONTROL + Keys.RETURN)
  25. while step < 5:
  26. elements[step].send_keys(Keys.CONTROL + Keys.RETURN)
  27. step += 1
  28. elements[0].click()
  29. except Exception:
  30. print('err1')
  31. except IndexError:
  32. print('there are no matches at the moment')
  33. os.abort()
  34.  
  35.  
  36. def track(container):
  37. global z
  38. (driver.window_handles)
  39. soup = BeautifulSoup(container, 'html.parser')
  40. page = soup.select('main')
  41. check_blocks = WebDriverWait(driver, 10).until(
  42. EC.presence_of_element_located((By.CSS_SELECTOR, "div.gold_advantage_wrap"))) # Ожидает появления селекторов
  43.  
  44. for elements_page in page: # **Вывод времени и золота
  45. divs = soup.find_all('div', {'class': 'name'})
  46. adventages = soup.find_all('div', {'class': 'gold_advantage'})
  47. gold = elements_page.select_one('b') # Ищет элемент преемущества и выводит
  48. gold = gold.text.strip()
  49. timer = elements_page.select_one("div.championship_time") # то же самое,но уже с временем
  50. timer = timer.text.strip()
  51. time_k = list(timer)
  52. time_list = []
  53. for i in time_k:
  54. if i.isdigit():
  55. if len(time_list) < 5:
  56. time_list.append(i)
  57. elif len(time_list) == 5:
  58. time_list = []
  59.  
  60. if len(time_list) == 3:
  61. time_list.insert(1, ':')
  62. elif len(time_list) == 4:
  63. time_list.insert(2, ':')
  64.  
  65. timer = ''.join(time_list)
  66. if int(gold) >= 2000: # Проверяет золото
  67. print(divs[0].text.strip(), 'vs', divs[1].text.strip()) #
  68.  
  69. if elements_page.select_one('b').text.strip() in adventages[0].text.strip():
  70. print(divs[0].text.strip(), 'gold:', gold, )
  71. print('--------------------------------------------------------------------')
  72. # while z <en:
  73. # time.sleep(2)
  74. # driver.switch_to_window(driver.window_handles[z])
  75. # z=+1
  76. # print(z)
  77. # if z == 4:
  78. # z =0
  79.  
  80. else:
  81. print(divs[1].text.strip(), 'gold:', gold, )
  82. print('--------------------------------------------------------------------')
  83.  
  84. # while z < en:
  85. # time.sleep(2)
  86. # driver.switch_to_window(driver.window_handles[z])
  87. # z=+1
  88. # print(z)
  89. # if z == 4:
  90. # z =0
  91.  
  92.  
  93. temp_hash = 0
  94. x = 0
  95. while True: # * Запускает парсер
  96. # try
  97. for handle in driver.window_handles:
  98. # driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
  99. driver.switch_to.window(handle)
  100. check_blocks = WebDriverWait(driver, 10).until(
  101. EC.presence_of_element_located((By.CSS_SELECTOR, "div.gold_advantage_wrap")))
  102. container = driver.find_element_by_css_selector('div.page_layout.match_page').get_attribute('innerHTML')
  103. print(temp_hash)
  104. if temp_hash != hash(container):
  105. track(container)
  106. temp_hash = hash(container)
  107. time.sleep(3)
  108. # except Exception:
  109. # time.sleep(7)
  110. # print('err')
  111. # continue
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement