Kaip išsirinkti telefoną už 1 lt iš tele2 svetainės?

Mano sesuo nusprendė pirkti telefoną iš tele2, už 1 lt. Paprašė manęs pagalbos surasti geriausią.

Atsidaręs tele2 svetainę neradau jokio normalaus palyginimo pagal kainas, todėl į pagalbą pasitelkiau python. Pasirašiau tokį scriptuką:

  1. #!/bin/env python
  2. # -*- encoding: utf-8 -*-
  3.  
  4. import re, os.path
  5. from urllib import urlopen, quote
  6.  
  7. phones = {
  8.     'Sony Ericsson':
  9.         ['K310i', 'K530i (3G)', 'K550i', 'K600i', 'K800i (3G)', 'P1i (3G)',
  10.          'S500i', 'T250i', 'T650i (3G)', 'W200i', 'W580i', 'W880i (3G)',
  11.          'W950i', 'Z310i', 'Z530i', 'Z610i (3G)'],
  12.  
  13.     'Nokia':
  14.         ['2610', '3109 classic', '3110 Classic', '5070', '5200', '5300',
  15.          '6020', '6030', '6060', '6070', '6080', '6085', '6103', '6110 Navigator',
  16.          '6111', '6120 classic (3G)', '6125', '6131', '6151 (3G)', '6230i',
  17.          '6233 (3G)', '6267 (3G)', '6288 (3G)', '6290 (3G)', '6300', '6500',
  18.          '7360', '7373', '7390 (3G)', '7500 Prism', '8600 Luna', 'E50 (FOTO)',
  19.          'E61 (3G)', 'E65 (3G)', 'E70 (3G)', 'N70 (3G)', 'N73 (3G)', 'N80 (3G)',
  20.          'N90-1 (3G)', 'N95 (3G)'],
  21.  
  22.     'Motorola':
  23.         ['K1', 'L6', 'U6', 'V3', 'W375'],
  24.  
  25.     'Samsung':
  26.         ['SGH-C300', 'SGH-D830', 'SGH-E210', 'SGH-E250', 'SGH-E390',
  27.         'SGH-E740', 'SGH-E900', 'SGH-G600', 'SGH-U300', 'SGH-U700 (3G)',
  28.         'SGH-X500', 'SGH-X510', 'SGH-X520', 'SGH-Z150(3G)', 'SGH-Z230 (3G)',
  29.         'SGH-Z400 (3G)'],
  30.  
  31.     'LG':
  32.         ['KE500', 'KE800 Chocolate', 'KE970 Shine', 'KG245', 'KG800', 'KP200'],
  33.     }
  34.  
  35. pattern = re.compile(r'<tr><td class="price_type">Privatiems klientams</td>' \
  36.                       '<td class="price_value" align="center">(\d+) Lt' \
  37.                       '<td class="price_value" align="center">(\d+) Lt' \
  38.                       '<td class="price_value" align="center">(\d+) Lt')
  39.  
  40. cnt = 0
  41. for phone, models in phones.iteritems():
  42.     for model in models:
  43.         filename = "phone__%s--%s.html" % (quote(phone), quote(model))
  44.         if os.path.exists(filename):
  45.             data = file(filename).read()
  46.         else:
  47.             url = 'http://www.tele2.lt/cps/rde/xchg/tele2_lt/hs.xsl' \
  48.                   '/367_LTH_HTML.html/papp/handsets_lt/' \
  49.                   'http://handsets.tele2.lt/handsets.phtml?' \
  50.                   'manuf=%s&model=%s' % (quote(phone), quote(model))
  51.             data = urlopen(url).read()
  52.             file(filename, 'w').write(data)
  53.  
  54.         results = pattern.search(data)
  55.         if results:
  56.             price1, price2, price3 = results.groups()
  57.             if int(price1) <= 50 or int(price2) <= 50 or int(price3) <= 50:
  58.                 print "%-15s %-18s %5s Lt, %5s Lt, %5s Lt. file:///tmp/%s" \
  59.                     % (phone, model, price1, price2, price3, filename)
  60.                 cnt += 1
  61.  
  62. print "\nViso rasta telefonų: %d" % cnt

Tai gi šio nedidelio scripto pagalba turėjau visas telefonų kainas vienoje vietoje ir galėjau lengvai išsirinkti norimą telefoną.

Šiuo scriptu galite pasinaudoti ir jūs. Tereikia turėti įdiegtą python'ą, tada susikurti failą, kurio turinys būtų toks koks pateiktas višuje ir paleisti tą naujai sukurtą failą su python. Paleisti reikėtu iš komandinės eilutės, nes būtent joje bus atvaizduotas rezultatas.

Komentarai

Anonymous portretas

:D genialu... nors siaip tai

:D genialu... nors siaip tai greiciau turbut butu buve suvest i koki Excely ar pan softa ir ten matyti... ;)

Anonymous portretas

Su exceliu būtų buvę

Su exceliu būtų buvę daugiau darbo. Be to retai kur pas programuotojus būna python ir win. Šiaip tikrai elegantiškas sprendimas .) Nori nusiųsti tele2 webmasteriui šitą skriptą? .)

Anonymous portretas

File "./tele2.sh", line

File "./tele2.sh", line 59
% (phone, model, price1, price2, price3, filename)
^
SyntaxError: invalid syntax

sirex portretas

Keistai. Kokią python

Keistai. Kokią python versiją naudoji?
Gal būt pas tave šią eilutę reikėtu sujungti su aukščiau esančia?

sirex portretas

Taip, tikrai buvo klaida.

Taip, tikrai buvo klaida. Ačiū už pastebėjimą, pataisiau.

Anonymous portretas

Dirb dabar ;) Šeip yra

Dirb dabar ;)
Šeip yra paprastesnis būdas - brūkštelt e-mail į tele2, paprašyt kad mesteltų sąrašiuką excel formate, nebandžiau tele2 to prašyt bet Bitė be problemų atsiuntė.
Aišku python būdas linksmesnis :)

Linksmų švenčių

Anonymous portretas

Neturiu ka veikti tai

Neturiu ka veikti tai parasiau savo versija:

http://www.paste.lt/paste/abbeec5994582835fd439e03696d17ed

gal kiek trumpesne :P

bet esme manau tu pati ;)

Anonymous portretas

tik ziuriu mano versija su

tik ziuriu mano versija su bug'ais ..

1) nevisur toks pat formatavimas .. ten kur surasytos kainos ..

2) kazkodel neveikia kaip turetu veikti ..

Net Meskafono kaina neteisingai parase..

vnz .. einu ka nors geresnio nuveiksiu ;)))

Anonymous portretas

Man rodos geriause butu

Man rodos geriause butu pirkti ne uz 1 Lita o prideti kelis shimtus Lt. ir pasiimti padoresni koki :)

Anonymous portretas

File "tele.py", line 8

File "tele.py", line 8
import re, os.path
^
IndentationError: unexpected indent

ps, python 2.6.5

Skelbti naują komentarą

Šio laukelio turinys bus laikomas privatus ir nerodomas viešai. If you have a Gravatar account, used to display your avatar.
  • Leidžiamos HTML žymės: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linijos ir paragrafai atskiriami automatiškai
  • Web puslapiu adresai ir el. pašto adresai automatiškai tampa nuorodomis.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

Daugiau informacijos apie teksto formatavimą

CAPTCHA
Šis klausimas skirtas patikrinti ar esi žmogus, taip apsisaugant nuo internetinių reklamos robotų.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.
Surinktas turinys