Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 21.53 KB | None | 0 0
  1. # -*- coding: utf-8 -*
  2. import time
  3. from selenium import webdriver
  4. from selenium.webdriver.common.keys import Keys
  5. from selenium.webdriver.support.ui import WebDriverWait
  6.  
  7. __author__ = u'partyhardok'
  8.  
  9. base_url = 'http://positivebet.com/'
  10. url_login = base_url + 'ru/user/login'
  11. url_work = base_url + 'ru/bets/index'
  12.  
  13. # Если нужно поменять пользователя - достаточно поменять здесь.
  14. email, password = 'serbernar1@gmail.com', 'congratulations17'
  15.  
  16. # Запускаем локальную сессию firefox. Selenium по умолчанию стартует браузер с чистой сессией. Очищать куки не нужно.
  17. browser = webdriver.Firefox()
  18. # Сайт работает не очень быстро - ставим большое время ожидания страницы
  19. browser.set_page_load_timeout(30)
  20.  
  21. # авторизация
  22. def autorizace(self):
  23.     # страница авторизации
  24.     browser.get(url_login)
  25.     assert "PositiveBet.com" in browser.title  # проверка соответствия
  26.  
  27.     # работа с полем  ввода логина
  28.     username = browser.find_element_by_id('UserLogin_username')
  29.     username.clear()  # предварительная очистка поля(эллемента страницы) для корректного ввода, мало ли
  30.     username.send_keys(email + Keys.TAB)  # позже будет реализован, как переменная(Таб оставить, для лучшей фальсификации)
  31.     # работа с полем ввода пароля
  32.     password = browser.find_element_by_id('UserLogin_password')
  33.     password.clear()
  34.     password.send_keys(password + Keys.TAB)  # позже будет реализован как переменная
  35.     # работаем с кнопкой вход
  36.     browser.find_element_by_css_selector('button[type="submit"]').click()
  37.     # авторизация прошла успешно
  38.  
  39.  
  40. def refresh():
  41.     browser.find_element_by_xpath(".//*[@id='btnRefresh']").click()
  42.  
  43.  
  44. def table_bets():
  45.     count = 1
  46.     while True:
  47.         page_1 = browser.page_source
  48.         bla = len(str(page_1.encode('ascii', 'ignore')))
  49.         print u'Проверяю наличие таблицы ', count
  50.         count += 1
  51.         base_handle = browser.current_window_handle
  52.         if bla > 70400:
  53.             table = browser.find_element_by_css_selector('table.items')
  54.             first_row = table.find_element_by_xpath('//tr[1]')
  55.  
  56.             links = first_row.find_elements_by_xpath('//td[3]//a')
  57.             site1 = links[0].text
  58.             site2 = links[1].text
  59.  
  60.             coeficients = first_row.find_elements_by_xpath("//td[6]/nobr")
  61.             coef1 = coeficients[0].text  # Коэфициент
  62.             coef2 = coeficients[1].text   # Коефициент
  63.  
  64.             bets = first_row.find_elements_by_xpath("//td[5]/nobr")
  65.             bet1 = bets[0].text  # Ставка
  66.             bet2 = bets[1].text  # Ставка
  67.  
  68.  
  69.             bet_now = first_row.find_element_by_xpath("//td[1]/a[3]/img").get_attribute('alt') # вид спорта
  70.  
  71.             result1 = browser.find_element_by_xpath(
  72.                 "/html/body/div[2]/div[1]/div[1]/div/div[2]/table/tbody/tr/td[4]/a[1]")
  73.             result2 = browser.find_element_by_xpath(
  74.                 "/html/body/div[2]/div[1]/div[1]/div/div[2]/table/tbody/tr/td[4]/a[2]")
  75.  
  76.             b1 = u'Футбол'
  77.             b2 = u'Теннис'
  78.             b3 = u'Баскетбол'
  79.             b4 = u'Волейбол'
  80.             s1 = u'П1'
  81.             s2 = u'П2'
  82.             s3 = u'X1'
  83.             s4 = u'X2'
  84.             # тоталы
  85.             s5 = u'Тм'
  86.             s6 = u'Тб'
  87.             # сеты
  88.             se1 = u' (1 сет)'
  89.             se2 = u' (2 сет)'
  90.             se3 = u' (3 сет)'
  91.             se4 = u' (4 сет)'
  92.             se5 = u' (5 сет)'
  93.             # четверти
  94.             che1 = u' (1 четверть)'
  95.             che2 = u' (2 четверть)'
  96.             che3 = u' (3 четверть)'
  97.             che4 = u' (4 четверть)'
  98.             che5 = u' (5 четверть)'
  99.             overtime = u' (вкл ОТ)'
  100.             if site1 == u'favbet' and site2 == u'bet365':
  101.                 c1 = float(coef1)
  102.                 c2 = float(coef2)
  103.                 print u'Коеф на ', site1, ' - ', c1
  104.                 print u'Коеф на ', site2, ' - ', c2
  105.                 print u'Ставка на ', site1, ' - ', bet1
  106.                 print u'Ставка на ', site2, ' - ', bet2
  107.                 if bet_now == b1:
  108.                     print u'Это футбол'
  109.                     calc(coef1=c1, coef2=c2, site1=site1)
  110.                 elif bet_now == b2:
  111.                     print u'Это теннис'
  112.                     calc(coef1=c1, coef2=c2, site1=site1)
  113.                     tennis1(bet1)
  114.                     tennis2(bet2)
  115.                 elif bet_now == b3:
  116.                     print u'Это баскет'
  117.                     calc(coef1=c1, coef2=c2, site1=site1)
  118.                 elif bet_now == b4:
  119.                     print u'Это волейбол'
  120.                     calc(coef1=c1, coef2=c2, site1=site1)
  121.                 else:
  122.                     print u'В программе нет такого вида спорта'
  123.             elif site1 == u'bet365' and site2 == u'favbet':
  124.                 c1 = float(coef1)
  125.                 c2 = float(coef2)
  126.                 print u'Коеф на ', site1, ' - ', c1
  127.                 print u'Коеф на ', site2, ' - ', c2
  128.                 print u'Ставка на ', site1, ' - ', bet1
  129.                 print u'Ставка на ', site2, ' - ', bet2
  130.             time.sleep(5)
  131.             refresh()
  132.         else:
  133.             print u'Таблица пуста ...'
  134.             time.sleep(1)
  135.             refresh()
  136.  
  137.  
  138. def open_result_link_and_close(result):
  139.     result.click()
  140.     base_handle = browser.current_window_handle
  141.     browser.switch_to.window(browser.window_handles[1])
  142.     browser.close()
  143.     browser.switch_to.window(base_handle)
  144.  
  145.  
  146. def tennis1(bet1):
  147.     b1 = u'Футбол'
  148.     b2 = u'Теннис'
  149.     b3 = u'Баскетбол'
  150.     b4 = u'Волейбол'
  151.     s1 = u'П1'
  152.     s2 = u'П2'
  153.     s3 = u'X1'
  154.     s4 = u'X2'
  155.     # тоталы
  156.     s5 = u'Тм'
  157.     s6 = u'Тб'
  158.     # сеты
  159.     se1 = u' (1 сет)'
  160.     se2 = u' (2 сет)'
  161.     se3 = u' (3 сет)'
  162.     se4 = u' (4 сет)'
  163.     se5 = u' (5 сет)'
  164.     overtime = u' (вкл ОТ)'
  165.  
  166.     kind1 = bet1[:2]
  167.  
  168.     if kind1 == s1:  # П1
  169.         if len(bet1) == 2:
  170.             print s1
  171.         elif bet1 == s1 + se1:
  172.             print s1 + se1
  173.         elif bet1 == s1 + se2:
  174.             print s1 + se2
  175.         elif bet1 == s1 + se3:
  176.             print s1 + se3
  177.         elif bet1 == s1 + se4:
  178.             print s1 + se4
  179.         elif bet1 == s1 + se5:
  180.             print s1 + se5
  181.         elif bet1 == s1 + overtime:
  182.             print s1 + overtime
  183.         else:
  184.             print u'Нет такой ставки в списке'
  185.     elif kind1 == s2:  # П2
  186.         if len(bet1) == 2:
  187.             print s2
  188.         elif bet1 == s2 + se1:
  189.             print s2 + se1
  190.         elif bet1 == s2 + se2:
  191.             print s2 + se2
  192.         elif bet1 == s2 + se3:
  193.             print s2 + se3
  194.         elif bet1 == s2 + se4:
  195.             print s2 + se4
  196.         elif bet1 == s2 + se5:
  197.             print s2 + se5
  198.         elif bet1 == s2 + overtime:
  199.             print s2 + overtime
  200.         else:
  201.             print u'Нет такой ставки в списке'
  202.     elif kind1 == s3:  # X1
  203.         if len(bet1) == 2:
  204.             print s3
  205.         elif bet1 == s3 + se1:
  206.             print s3 + se1
  207.         elif bet1 == s3 + se2:
  208.             print s3 + se2
  209.         elif bet1 == s3 + se3:
  210.             print s3 + se3
  211.         elif bet1 == s3 + se4:
  212.             print s3 + se4
  213.         elif bet1 == s3 + se5:
  214.             print s3 + se5
  215.         elif bet1 == s3 + overtime:
  216.             print s3 + overtime
  217.         else:
  218.             print u'Нет такой ставки в списке'
  219.     elif kind1 == s4:  # X2
  220.         if len(bet1) == 2:
  221.             print s4
  222.         elif bet1 == s4 + se1:
  223.             print s4 + se1
  224.         elif bet1 == s4 + se2:
  225.             print s4 + se2
  226.         elif bet1 == s4 + se3:
  227.             print s4 + se3
  228.         elif bet1 == s4 + se4:
  229.             print s4 + se4
  230.         elif bet1 == s4 + se5:
  231.             print s4 + se5
  232.         elif bet1 == s4 + overtime:
  233.             print s4 + overtime
  234.         else:
  235.             print u'Нет такой ставки в списке'
  236.     elif kind1 == s5:  # Тм
  237.         if len(bet1) == 5:
  238.             print u'Один'
  239.         elif len(bet1) == 6:
  240.             print u'Два'
  241.         elif len(bet1) == 7:
  242.             print u'Один с точкой'
  243.         elif len(bet1) == 8:
  244.             print u'Три'
  245.         elif len(bet1) == 13:
  246.             print u'Один и сет'
  247.             if bet1[5:13] == se1:
  248.                 print u'Первый'
  249.             elif bet1[5:13] == se2:
  250.                 print u'Второй'
  251.             elif bet1[5:13] == se3:
  252.                 print u'Третий'
  253.             elif bet1[5:13] == se4:
  254.                 print u'Четвертый'
  255.             elif bet1[5:13] == se5:
  256.                 print u'Пятый'
  257.         elif len(bet1) == 14:
  258.             print u'Два и сет'
  259.             if bet1[6:14] == se1:
  260.                 print u'Первый'
  261.             elif bet1[6:14] == se2:
  262.                 print u'Второй'
  263.             elif bet1[6:14] == se3:
  264.                 print u'Третий'
  265.             elif bet1[6:14] == se4:
  266.                 print u'Четвертый'
  267.             elif bet1[6:14] == se5:
  268.                 print u'Пятый'
  269.         elif len(bet1) == 15:
  270.             print u'Два с точкой и сет'
  271.             if bet1[6:14] == se1:
  272.                 print u'Первый'
  273.             elif bet1[6:14] == se2:
  274.                 print u'Второй'
  275.             elif bet1[6:14] == se3:
  276.                 print u'Третий'
  277.             elif bet1[6:14] == se4:
  278.                 print u'Четвертый'
  279.             elif bet1[6:14] == se5:
  280.                 print u'Пятый'
  281.         elif len(bet1) == 16:
  282.             print u'Три и сет'
  283.             if bet1[8:16] == se1:
  284.                 print u'Первый'
  285.             elif bet1[8:16] == se2:
  286.                 print u'Второй'
  287.             elif bet1[8:16] == se3:
  288.                 print u'Третий'
  289.             elif bet1[8:16] == se4:
  290.                 print u'Четвертый'
  291.             elif bet1[8:16] == se5:
  292.                 print u'Пятый'
  293.             else:
  294.                 print u'Нет такого события'
  295.         else:
  296.             print u'Нет такого события'
  297.     elif kind1 == s6:  # Тб
  298.         if len(bet1) == 5:
  299.             print u'Один'
  300.         elif len(bet1) == 6:
  301.             print u'Два'
  302.         elif len(bet1) == 7:
  303.             print u'Один с точкой'
  304.         elif len(bet1) == 8:
  305.             print u'Три'
  306.         elif len(bet1) == 13:
  307.             print u'Один и сет'
  308.             if bet1[5:13] == se1:
  309.                 print u'Первый'
  310.             elif bet1[5:13] == se2:
  311.                 print u'Второй'
  312.             elif bet1[5:13] == se3:
  313.                 print u'Третий'
  314.             elif bet1[5:13] == se4:
  315.                 print u'Четвертый'
  316.             elif bet1[5:13] == se5:
  317.                 print u'Пятый'
  318.         elif len(bet1) == 14:
  319.             print u'Два и сет'
  320.             if bet1[6:14] == se1:
  321.                 print u'Первый'
  322.             elif bet1[6:14] == se2:
  323.                 print u'Второй'
  324.             elif bet1[6:14] == se3:
  325.                 print u'Третий'
  326.             elif bet1[6:14] == se4:
  327.                 print u'Четвертый'
  328.             elif bet1[6:14] == se5:
  329.                 print u'Пятый'
  330.         elif len(bet1) == 15:
  331.             print u'Один с точкой и сет'
  332.             if bet1[7:15] == se1:
  333.                 print u'Первый'
  334.             elif bet1[7:15] == se2:
  335.                 print u'Второй'
  336.             elif bet1[7:15] == se3:
  337.                 print u'Третий'
  338.             elif bet1[7:15] == se4:
  339.                 print u'Четвертый'
  340.             elif bet1[7:15] == se5:
  341.                 print u'Пятый'
  342.         elif len(bet1) == 16:
  343.             print u'Три и сет'
  344.             if bet1[8:16] == se1:
  345.                 print u'Первый'
  346.             elif bet1[8:16] == se2:
  347.                 print u'Второй'
  348.             elif bet1[8:16] == se3:
  349.                 print u'Третий'
  350.             elif bet1[8:16] == se4:
  351.                 print u'Четвертый'
  352.             elif bet1[8:16] == se5:
  353.                 print u'Пятый'
  354.     else:
  355.         print u'Нет такой ставки в списке'
  356.  
  357.  
  358. def tennis2(bet2):
  359.     b1 = u'Футбол'
  360.     b2 = u'Теннис'
  361.     b3 = u'Баскетбол'
  362.     b4 = u'Волейбол'
  363.     s1 = u'П1'
  364.     s2 = u'П2'
  365.     s3 = u'X1'
  366.     s4 = u'X2'
  367.     # тоталы
  368.     s5 = u'Тм'
  369.     s6 = u'Тб'
  370.     # сеты
  371.     se1 = u' (1 сет)'
  372.     se2 = u' (2 сет)'
  373.     se3 = u' (3 сет)'
  374.     se4 = u' (4 сет)'
  375.     se5 = u' (5 сет)'
  376.     overtime = u' (вкл ОТ)'
  377.  
  378.     kind2 = bet2[:2]
  379.  
  380.     if kind2 == s1:  # П1
  381.         if len(bet2) == 2:
  382.             print s1
  383.         elif bet2 == s1 + se1:
  384.             print s1 + se1
  385.         elif bet2 == s1 + se2:
  386.             print s1 + se2
  387.         elif bet2 == s1 + se3:
  388.             print s1 + se3
  389.         elif bet2 == s1 + se4:
  390.             print s1 + se4
  391.         elif bet2 == s1 + se5:
  392.             print s1 + se5
  393.         elif bet2 == s1 + overtime:
  394.             print s1 + overtime
  395.         else:
  396.             print u'Нет такой ставки в списке'
  397.     elif kind2 == s2:  # П2
  398.         if len(bet2) == 2:
  399.             print s2
  400.         elif bet2 == s2 + se1:
  401.             print s2 + se1
  402.         elif bet2 == s2 + se2:
  403.             print s2 + se2
  404.         elif bet2 == s2 + se3:
  405.             print s2 + se3
  406.         elif bet2 == s2 + se4:
  407.             print s2 + se4
  408.         elif bet2 == s2 + se5:
  409.             print s2 + se5
  410.         elif bet2 == s2 + overtime:
  411.             print s2 + overtime
  412.         else:
  413.             print u'Нет такой ставки в списке'
  414.     elif kind2 == s3:  # X1
  415.         if len(bet2) == 2:
  416.             print s3
  417.         elif bet2 == s3 + se1:
  418.             print s3 + se1
  419.         elif bet2 == s3 + se2:
  420.             print s3 + se2
  421.         elif bet2 == s3 + se3:
  422.             print s3 + se3
  423.         elif bet2 == s3 + se4:
  424.             print s3 + se4
  425.         elif bet2 == s3 + se5:
  426.             print s3 + se5
  427.         elif bet2 == s3 + overtime:
  428.             print s3 + overtime
  429.         else:
  430.             print u'Нет такой ставки в списке'
  431.     elif kind2 == s4:  # X2
  432.         if len(bet2) == 2:
  433.             print s4
  434.         elif bet2 == s4 + se1:
  435.             print s4 + se1
  436.         elif bet2 == s4 + se2:
  437.             print s4 + se2
  438.         elif bet2 == s4 + se3:
  439.             print s4 + se3
  440.         elif bet2 == s4 + se4:
  441.             print s4 + se4
  442.         elif bet2 == s4 + se5:
  443.             print s4 + se5
  444.         elif bet2 == s4 + overtime:
  445.             print s4 + overtime
  446.         else:
  447.             print u'Нет такой ставки в списке'
  448.     elif kind2 == s5:  # Тм
  449.         if len(bet2) == 5:
  450.             print u'Один'
  451.         elif len(bet2) == 6:
  452.             print u'Два'
  453.         elif len(bet2) == 7:
  454.             print u'Один с точкой'
  455.         elif len(bet2) == 8:
  456.             print u'Три'
  457.         elif len(bet2) == 13:
  458.             print u'Один и сет'
  459.             if bet2[5:13] == se1:
  460.                 print u'Первый'
  461.             elif bet2[5:13] == se2:
  462.                 print u'Второй'
  463.             elif bet2[5:13] == se3:
  464.                 print u'Третий'
  465.             elif bet2[5:13] == se4:
  466.                 print u'Четвертый'
  467.             elif bet2[5:13] == se5:
  468.                 print u'Пятый'
  469.         elif len(bet2) == 14:
  470.             print u'Два и сет'
  471.             if bet2[6:14] == se1:
  472.                 print u'Первый'
  473.             elif bet2[6:14] == se2:
  474.                 print u'Второй'
  475.             elif bet2[6:14] == se3:
  476.                 print u'Третий'
  477.             elif bet2[6:14] == se4:
  478.                 print u'Четвертый'
  479.             elif bet2[6:14] == se5:
  480.                 print u'Пятый'
  481.         elif len(bet2) == 15:
  482.             print u'Два с точкой и сет'
  483.             if bet2[6:14] == se1:
  484.                 print u'Первый'
  485.             elif bet2[6:14] == se2:
  486.                 print u'Второй'
  487.             elif bet2[6:14] == se3:
  488.                 print u'Третий'
  489.             elif bet2[6:14] == se4:
  490.                 print u'Четвертый'
  491.             elif bet2[6:14] == se5:
  492.                 print u'Пятый'
  493.         elif len(bet2) == 16:
  494.             print u'Три и сет'
  495.             if bet2[8:16] == se1:
  496.                 print u'Первый'
  497.             elif bet2[8:16] == se2:
  498.                 print u'Второй'
  499.             elif bet2[8:16] == se3:
  500.                 print u'Третий'
  501.             elif bet2[8:16] == se4:
  502.                 print u'Четвертый'
  503.             elif bet2[8:16] == se5:
  504.                 print u'Пятый'
  505.             else:
  506.                 print u'Нет такого события'
  507.         else:
  508.             print u'Нет такого события'
  509.     elif kind2 == s6:  # Тб
  510.         if len(bet2) == 5:
  511.             print u'Один'
  512.         elif len(bet2) == 6:
  513.             print u'Два'
  514.         elif len(bet2) == 7:
  515.             print u'Один с точкой'
  516.         elif len(bet2) == 8:
  517.             print u'Три'
  518.         elif len(bet2) == 13:
  519.             print u'Один и сет'
  520.             if bet2[5:13] == se1:
  521.                 print u'Первый'
  522.             elif bet2[5:13] == se2:
  523.                 print u'Второй'
  524.             elif bet2[5:13] == se3:
  525.                 print u'Третий'
  526.             elif bet2[5:13] == se4:
  527.                 print u'Четвертый'
  528.             elif bet2[5:13] == se5:
  529.                 print u'Пятый'
  530.         elif len(bet2) == 14:
  531.             print u'Два и сет'
  532.             if bet2[6:14] == se1:
  533.                 print u'Первый'
  534.             elif bet2[6:14] == se2:
  535.                 print u'Второй'
  536.             elif bet2[6:14] == se3:
  537.                 print u'Третий'
  538.             elif bet2[6:14] == se4:
  539.                 print u'Четвертый'
  540.             elif bet2[6:14] == se5:
  541.                 print u'Пятый'
  542.         elif len(bet2) == 15:
  543.             print u'один с точкой и сет'
  544.             if bet2[7:15] == se1:
  545.                 print u'Первый'
  546.             elif bet2[7:15] == se2:
  547.                 print u'Второй'
  548.             elif bet2[7:15] == se3:
  549.                 print u'Третий'
  550.             elif bet2[7:15] == se4:
  551.                 print u'Четвертый'
  552.             elif bet2[7:15] == se5:
  553.                 print u'Пятый'
  554.         elif len(bet2) == 16:
  555.             print u'Три и сет'
  556.             if bet2[8:16] == se1:
  557.                 print u'Первый'
  558.             elif bet2[8:16] == se2:
  559.                 print u'Второй'
  560.             elif bet2[8:16] == se3:
  561.                 print u'Третий'
  562.             elif bet2[8:16] == se4:
  563.                 print u'Четвертый'
  564.             elif bet2[8:16] == se5:
  565.                 print u'Пятый'
  566.     else:
  567.         print u'Нет такой ставки в списке'
  568.  
  569.  
  570. def calc(coef1, coef2, site1):
  571.     sumTotal = 1000.0
  572.     kurs = 25.9699787
  573.     vilka = u'favbet'
  574.     coeffork = (1 / coef1) + (1 / coef2)
  575.     print u'Коефициент вилки: ', coeffork
  576.     global Profit
  577.     Profit = (1 / coeffork) * sumTotal
  578.  
  579.     print (u'Профит:'), Profit
  580.     if vilka == site1:
  581.         Sum1 = (Profit / coef1) * kurs
  582.         Sum2 = (Profit / coef2)
  583.         SumTotals = Sum2 + Sum1 / kurs
  584.         print (u'Итого: '), SumTotals
  585.         print (u'На первую вилку: '), Sum1
  586.         print (u'На вторую вилку нужно поставить: '), Sum2
  587.         SumW1 = Profit
  588.         SumW2 = Profit
  589.  
  590.         if SumW1 > sumTotal and SumW2 > sumTotal:
  591.             print (u'Ставка зашла')
  592.  
  593.     else:
  594.         Sum2 = (Profit / coef2) * kurs
  595.         Sum1 = (Profit / coef1)
  596.         SumTotals = Sum2 / kurs + Sum1
  597.         print (u'Итого: '), SumTotals
  598.         print (u'На первую вилку: '), Sum1
  599.         print (u'На вторую вилку нужно поставить: '), Sum2
  600.         SumW1 = Profit
  601.         SumW2 = Profit
  602.         if SumW1 > sumTotal and SumW2 > sumTotal:
  603.             print (u'Ставка зашла')
  604.  
  605.  
  606. def main():
  607.     # Шаг 1 - авторизация
  608.     autorizace(True)
  609.     # Шаг 2 - Переход на страницу ставок
  610.     browser.get(url_work)
  611.     # Шаг 3 - запускаем основной цикл программы
  612.     table_bets()
  613.  
  614.  
  615. if __name__ == '__main__':
  616.     try:
  617.         main()
  618.     except:
  619.         print u'Ошибка'
  620.     finally:
  621.         browser.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement