Mając chwilę czasu skrobnąłem skrypt wyświetlający dane z konta Play24 na temat LTE z RBM
SKRYPT:
Kod: Zaznacz cały
#-*- coding: utf-8 -*-
import json
import mechanize
import re
from bs4 import BeautifulSoup
import sys
__author__ = 'upgreydd'
if len(sys.argv) < 2:
print "Podaj parametry: " + sys.argv[0] + " login haslo numer*"
print "=================================================================================================="
print "login - login do konta Play24"
print "haslo - hasło do konta Play24"
print "numer - numer telefonu z internetem RBM - opcjonalne jeśli więcej niż jeden numer na koncie Play24"
print "=================================================================================================="
print "przykład: " + sys.argv[0] + " [email protected] admin1 123123123"
sys.exit()
loginpageurl = "https://logowanie.play.pl/opensso/logowanie"
login = sys.argv[1]
password = sys.argv[2]
if len(sys.argv) > 3:
number = sys.argv[3]
browser = mechanize.Browser()
browser.addheaders = [('User-agent',
'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
browser.set_handle_redirect(True)
browser.open(loginpageurl)
browser.select_form(name="Login")
browser.form['IDToken1'] = login
browser.form['IDToken2'] = password
browser.submit()
browser.open("https://m24.play.pl/mplay24-lajt")
browser.select_form(nr=0)
browser.submit()
browser.select_form(nr=0)
browser.submit()
response = browser.open(
"https://m24.play.pl/mplay24-lajt/home?wicket:bookmarkablePage=:pl.p4.mplay24.view.pages.MyNumbersMain")
bs = BeautifulSoup(response.read(), "html.parser")
try:
url = bs.find('a', href=True, text=number)
browser.open("https://m24.play.pl/mplay24-lajt/home" + url['href'])
except:
pass
response = browser.open("https://m24.play.pl/mplay24-lajt/home/accountUnpaid")
bs = BeautifulSoup(response.read(), "html.parser")
# Stan konta
try:
account_state = bs.find('span', {"class": "amounts"}).text.splitlines()[1]
except:
print "Błędne parametry skryptu"
sys.exit()
# Wazne do
valid_to = bs.find('smalll').text
response = browser.open("https://m24.play.pl/mplay24-lajt/home")
bs = BeautifulSoup(response.read(), "html.parser")
# Numer telefonu
phone_number = bs.find('div', {"class": "top"}).span.text
response = browser.open("https://m24.play.pl/mplay24-lajt/services/desc/2")
bs = BeautifulSoup(response.read(), "html.parser")
# Czy Pakiet LTE bez limitu jest aktywny
lte_status = (re.search('.*\((.*)\)', bs.find('ul', {"class": "sub services"}).a.text).group(1) == u'włączona')
print json.dumps({'phone_number': phone_number, 'valid_to': valid_to, 'account_state': account_state, 'lte_enabled': lte_status})
Kod: Zaznacz cały
OpenWrt% python fetcher.py
Podaj parametry: fetcher.py login haslo numer*
==================================================================================================
login - login do konta Play24
haslo - hasło do konta Play24
numer - numer telefonu z internetem RBM - opcjonalne jeśli więcej niż jeden numer na koncie Play24
==================================================================================================
przykład: fetcher.py [email protected] admin1 123123123
OpenWrt% python fetcher.py kacper@***** tajnehaslo 535767***
{"phone_number": "535767***", "lte_enabled": true, "account_state": "31,00", "valid_to": "2016-08-10"}
OpenWrt%
Skrypt przyjmuje 2/3 parametry. Login, hasło i jako trzeci parametr nr. telefonu o ile na koncie jest więcej niż jeden numer telefonu.
Skrypt zwraca kolejno: numer telefonu, czy pakiet lte jest aktywny, stan konta, ważność konta.
Z czasem (którego mam mało) postaram się rozwinąć ten skrypt i spiąć z LuCI, może ktoś chętny do pomocy?
Miłego testowania, pozdrawiam[/b]