· 9 years ago · Dec 13, 2016, 05:02 PM
1import re
2import urllib.request
3import sqlite3
4
5def doRequest(url):
6 return urllib.request.urlopen(url).read().decode()
7
8URL = 'https://www.czasnatrenera.pl/czytelnia/tabela-wartosci-odzywczych.html'
9
10produkt = input('Wybierz produkt: ')
11produkt = str.capitalize(produkt)
12waga = float(input('Podaj wage swojego produktu [g]: '))
13zrodlo_strony = doRequest(URL)
14
15pattern = re.compile(r''+produkt+'.+\n\s+<td class="wa">\d+')
16kalorie = pattern.findall(zrodlo_strony)
17kalorie[0] = re.sub(''+produkt+'.+\n\s+<td class="wa">', '', kalorie[0])
18kalorie[0] = re.sub(',', '.', kalorie[0])
19
20pattern2 = re.compile(r''+produkt+'.+\n\s+<td class="wa">\d+.+\n\s+<td class="wa">\d+?,?\d?')
21bialko = pattern2.findall(zrodlo_strony)
22bialko[0] = re.sub(''+produkt+'.+\n\s+<td class="wa">\d+.+\n\s+<td class="wa">', '', bialko[0])
23bialko[0] = re.sub(',', '.', bialko[0])
24
25pattern3 = re.compile(r''+produkt+'.+\n\s+<td class="wa">\d+.+\n\s+<td class="wa">\d+?,?\d?.+\n\s+<td class="wa">\d+?,?\d?')
26tluszcz = pattern3.findall(zrodlo_strony)
27tluszcz[0] = re.sub(''+produkt+'.+\n\s+<td class="wa">\d+.+\n\s+<td class="wa">\d+?,?\d?.+\n\s+<td class="wa">', '', tluszcz[0])
28tluszcz[0] = re.sub(',', '.', tluszcz[0])
29
30pattern4 = re.compile(r''+produkt+'.+\n\s+<td class="wa">\d+.+\n\s+<td class="wa">\d+?,?\d?.+\n\s+<td class="wa">\d+?,?\d?.+\n\s+<td class="wa">\d+?,?\d?')
31weglowodany = pattern4.findall(zrodlo_strony)
32weglowodany[0] = re.sub(''+produkt+'.+\n\s+<td class="wa">\d+.+\n\s+<td class="wa">\d+?,?\d?.+\n\s+<td class="wa">\d+?,?\d?.+\n\s+<td class="wa">', '', weglowodany[0])
33weglowodany[0] = re.sub(',', '.', weglowodany[0])
34
35kalorieA = float(kalorie[0])
36bialkoA = float(bialko[0])
37tluszczA = float(tluszcz[0])
38weglowodanyA = float(weglowodany[0])
39
40'''print('\nZawartosc w 100g produktu:')
41print('Kalorie: ', kalorieA)
42print('Bialko: ', bialkoA)
43print('Tłuszcz: ', tluszczA)
44print('Węglowodany: ', weglowodanyA)'''
45
46kalorieB = (float(kalorie[0])*waga)/100
47bialkoB = (float(bialko[0])*waga)/100
48tluszczB = (float(tluszcz[0])*waga)/100
49weglowodanyB = (float(weglowodany[0])*waga)/100
50
51'''print('\nZawartosc w ', waga, 'g produktu:')
52print('Kalorie: ', kalorieB)
53print('Bialko: ', bialkoB)
54print('Tłuszcz: ', tluszczB)
55print('Węglowodany: ', weglowodanyB)'''
56
57con = sqlite3.connect('bartosz_chajdas_gr6.db')
58con.row_factory = sqlite3.Row
59cur = con.cursor()
60
61cur.executescript("""
62 CREATE TABLE IF NOT EXISTS tabela (
63 produkt varchar(250) NOT NULL,
64 waga float NOT NULL,
65 kalorie float NOT NULL,
66 bialko float NOT NULL,
67 tluszcz float NOT NULL,
68 weglowodany float NOT NULL
69 )""")
70
71zbior = (
72 (produkt, 100, kalorieA, bialkoA, tluszczA, weglowodanyA),
73 (produkt, waga, kalorieB, bialkoB, tluszczB, weglowodanyB)
74)
75
76cur.executemany('INSERT INTO tabela VALUES(?,?,?,?,?,?)', zbior)
77
78con.commit()
79
80print("")
81
82def czytajdane():
83 cur.execute(
84 """
85 SELECT produkt, waga, kalorie, bialko, tluszcz, weglowodany FROM tabela
86 """)
87 zbior = cur.fetchall()
88 print('Zapisane rekordy w bazie danych: ')
89 print('----------------------------------')
90 print('produkt waga kalorie bialko tluszcz weglowodany')
91 print('----------------------------------')
92 for i in zbior:
93 print (i['produkt'], "{0:.2f}".format(i['waga']), "{0:.2f}".format(i['kalorie']), "{0:.2f}".format(i['bialko']), "{0:.2f}".format(i['tluszcz']), "{0:.2f}".format(i['weglowodany']))
94 print ("")
95
96czytajdane()