Tele2: Парсинг баланса и интернет трафика.

  • Python
Скрапим инфу по трафику из личного кабинета Теле2.

Необходимы библиотеки:
  • selenium
  • time
  • datetime
  • re
  • lxml
  • pyodbc

import time
import pyodbc
import datetime
import re
from time import sleep
from lxml import html, etree
from selenium import webdriver
from selenium.webdriver.common import action_chains, keys

dt = datetime.datetime.now()
dtLogs = str(dt)
number = 'номер телефона'
passw = 'пароль'

driver = webdriver.Chrome('.\chrome_new\chromedriver')

try:
	driver.get('https://login.tele2.ru/ssotele2/wap/auth')
	time.sleep(5)
	
except:
	with open('logs.txt', 'at') as file:
		file.write(dtLogs + ' - Ошибка загрузки сайта: ' + number + '\n')

#Входим в личный кабинет
try:
	list = driver.find_element_by_css_selector('[data-tab="w-password"]')
	list.click()
	time.sleep(1)

	username = driver.find_element_by_id("phone-password")
	username.click()
	time.sleep(1)
	username.send_keys(number)

	password = driver.find_element_by_id("password-field")
	password.click()
	time.sleep(1)
	password.send_keys(passw)

	submit = driver.find_element_by_css_selector('[class="confrim-btn"]')
	submit.click()
	time.sleep(5)
	driver.get('https://msk.tele2.ru/lk')
	time.sleep(10)
except:
	with open('logs.txt', 'at') as file:
		file.write(dtLogs + ' - Ошибка авторизации на номере: ' + number + '\n')

#Ищем остаток трафика
try:
	traff_Gb = driver.find_element_by_xpath('//div[@class="balance-rate"]/div/div[2]').find_element_by_xpath('.//span[@class="number"]/span').text
	traff_Gb = re.sub(',', '.', traff_Gb)
	traff_Gb = float(traff_Gb)
	print(traff_Gb)
	print(type(traff_Gb))
	time.sleep(1)
except:
	with open('logs.txt', 'at') as file:
		file.write(dtLogs + ' - Ошибка считывания трафика: ' + number + '\n')

		
#Добываем баланс
try:
	balance = driver.find_element_by_xpath('//div[@class="lk-main-content balance-content"]').find_element_by_xpath('.//span[@class="number"]/span').text
	balance = re.sub(',', '.', balance)
	balance = re.sub(' ', '', balance)
	balance = float(balance)
	print(balance)
	print(type(balance))
	time.sleep(1)
except:
	with open('logs.txt', 'at') as file:
		file.write(dtLogs + ' - Ошибка считывания баланса: ' + number + '\n')

driver.quit()

# #Записываем данные в БД
# try:
	# cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
						  # "Server=0.0.0.0;"
						  # "Database=admin;"
						  # "Trusted_Connection=yes;"
						  # "UID=table;"
						  # "PWD=0000;")
						  
	# cursor = cnxn.cursor()
	# cursor.execute('INSERT INTO tele2_balance (dt, number, traff_Gb, balance) VALUES (?, ?, ?, ?)', (dt, number1, traff_Gb1, balance1))
	# cursor.commit()
# except:
	# with open('logs.txt', 'at') as file:
		# file.write(dtLogs + ' - Ошибка записи в БД: ' + number + '\n')
Поделиться:

Нет комментариев