Змея / Говнокод #26787 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
from selenium import webdriver
import time
import telegram


def A():
    код парсера

while True:
    browser = webdriver.Chrome()
    browser.maximize_window()
    browser.get('ссылка')
    try:
        BOT_TOKEN = 'токен'
        number2 = browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[5]/div/div[1]/div[1]/div').text
        SS = number2.split()
        if SS[0] == '0' and SS[1] == '0':
            browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[5]/div/div[1]/div[1]/a').click()
            time.sleep(5)
            A()
    except Exception:
        pass

    try:
        BOT_TOKEN = 'токен'
        number2 = browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[4]/div/div[1]/div[1]/div').text
        SS = number2.split()
        if SS[0] == '0' and SS[1] == '0':
            browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[4]/div/div[1]/div[1]/a').click()
            time.sleep(5)
            A()
    except Exception:
        pass

    try:
        BOT_TOKEN = 'токен'
        number2 = browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[3]/div/div[1]/div[1]/div').text
        SS = number2.split()
        if SS[0] == '0' and SS[1] == '0':
            browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[3]/div/div[1]/div[1]/a').click()
            time.sleep(5)
            A()
    except Exception:
        pass

    try:
        BOT_TOKEN = 'токен'
        number2 = browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[6]/div/div[1]/div[1]/div').text
        SS = number2.split()
        if SS[0] == '0' and SS[1] == '0':
            browser.find_element_by_xpath('//*[@id="games_content"]/div/div[1]/div/div/div[6]/div/div[1]/div[1]/a').click()
            time.sleep(5)
            A()
    except Exception:
        pass
    browser.close()
    time.sleep(15)

Вопросик с хабра)

Запостил: Safronov_alexei Safronov_alexei, (Updated )

Комментарии (15) RSS

  • В аду для программистов черти заставляют людей парсить HTML вот такими xpath
    /div/div[1]/div/div/div[4]/div/div[1]/div[1]/div

    и стабилизировать свой код вот такими конструкицчми
    time.sleep(15)
    Ответить
  • А после выполнения этого скрипта в памяти останется висеть процесс драйвера, потому что его надо вручную закрывать через «browser.quit()», а не «browser.close()». Какой багор )))
    Ответить
      • Просто закрывает текущее активное окно браузера. Даже если оно последнее — сессия всё равно остаётся жить (что, в принципе, логично: мы можем захотеть открыть другое окно после этого).
        Ответить
  • Погуглил «site:habr.com "games_content"», нашёл девять (!) вопросов от автора сего говноподелия. Какой «Stackoverflowqna.habr.com-driven development» )))

    Кстати, идею с time.sleep() в конце ему подсказали вот здесь: https://qna.habr.com/q/769297. Там ещё эпик есть:
    print('Парсим табло.......')
    
    Round1=browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div/div[2]/div/div/div[3]/div/section/div[1]/div[1]').text
    print(Round1)
    Round2=browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div/div[2]/div/div/div[3]/div/section/div[1]/div[2]').text
    print(Round2)
    Round3=browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div/div[2]/div/div/div[3]/div/section/div[1]/div[3]').text
    print(Round3)
    Round4=browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div/div[2]/div/div/div[3]/div/section/div[1]/div[4]').text
    print(Round4)
    Round5=browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div/div[2]/div/div/div[3]/div/section/div[1]/div[5]').text
    print(Round5)
    Round6=browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div/div[2]/div/div/div[3]/div/section/div[1]/div[6]').text
    print(Round6)
    
    ........
    Ответить
    • Там на сайте совсем стилей нету раз приходится от корня дивы отсчитывать?
      Ответить
      • По-любому это одна из защит от парсинга. Через GET тоже поди не получишь данные, нужен js включенный.
        А еще можно раз в неделю менять вложенность тегов.
        Ответить
      • Проверил рандомную страницу — вроде как всё есть, даже user-defined элементы из «HTML5». Но насколько же это дерьмо тяжёлое и тормозное — просто пиздец. 10 фпс, всё шевелится, дёргается, пытается наебать на включение уведомлений… Пиздец, полный. Выглядит как ёбанный дорвей из середины нулевых.
        Ответить
  • Старый добрый парсинг, да еще и с 1xbet. Интересно, а какой-то анализ потом планируется?
    Знавал я одного любителя ставок на футбол. Хитрые расчеты в экселе вел https://ibb.co/Yhrk6pC
    Ответить
      • Х.з. Хвалился только редкими выигрышами, якобы 20-30 т.р. в мес зарабатывал.
        Изучив пачку скринов, совпадений прогноза с реальностью я не заметил, но там и ставки делались на много разных событий.
        В эксельках еще есть вкладки со статистикой за прошлые периоды http://joxi.ru/YmExjOxCJ1RLJr
        Ответить
          • Названия команд похожи на вореции из темы про питушню. Какая-нибудь Швеция или Норвегия?
            Ответить
            • P.S. Оказывается, Швеция. У них реально есть город «Треллеборг».
              Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8