A honlapok látogatottságáról a webszerverek legtöbbször naplót vezetnek. Az általunk vizsgált weboldal naplójából részletek találhatók a webstat.txt szöveges állományban. A napló időrend szerint rendezett, egy-egy sorában egy látogatás adatai szerepelnek:

  • a használt böngésző neve, vagy egy kötőjel, ha a böngésző típusa nem volt megállapítható;
  • a böngészés dátuma (minden dátum 2020. februári);
  • a weboldalt felkereső kliensszámítógép IP-címe;
  • amennyiben a látogató az oldal címét beírva kereste föl a weboldalt, akkor a ,,honlap” szó, egyébként annak a weboldalnak vagy alkalmazásnak a címe, ahonnan hivatkozással a honlapra került a látogató.

A szöveges állományban a fenti adatokat szóköz választja el a mintának megfelelően:

Chrome 2020.02.11 130.43.220.233 www.google.com
Firefox 2020.02.11 134.255.106.38 www.google.com
Safari 2020.02.11 134.255.91.250 honlap

Készítsünk programot, amellyel megoldjuk a következő feladatokat. Minden feladatrész elkészítésekor írjuk ki a feladat sorszámát (pl. 1. feladat:), valamint a beolvasás és a kiírás formátumát a minta alapján oldjuk meg. Az ékezetmentes kiírás is elfogadott.

  1. Olvassuk be és tároljuk el a webstat.txt állományt, majd adjuk meg, hogy hány adatsor szerepel a naplóban.
  2. Adjuk meg táblázatos elrendezéssel, hogy az egyes napokon hány látogató adatai szerepelnek a naplóban.
  3. Soroljuk fel azokat a böngészőket, amelyek szerepelnek a naplóban. A listában minden név egyszer szerepeljen és a neveket vesszővel válasszuk el.
  4. Adjunk statisztikát arról, hogy a honlapot Chrome böngészővel felkeresők hogyan érték el a weboldalt. Számítsuk ki, hogy hány százalékuk adta meg a honlap címét, illetve hány százalékuk jött máshonnan a honlapra. Az eredményt egy tizedesjegyre kerekítve írjuk ki.
  5. Vizsgáljuk meg az adatokat, és adjuk meg azokat az IP címeket, amelyekről egy adott napon többször is fölkeresték a weboldalt. A listában minden IP-cím csak egyszer szerepeljen.
  6. Kérjünk be egy IP-címet, és adjuk meg, hogy mely napokon keresték föl a weboldalt a bekért címnek legalább az első két bájtjával azonos címekről. Készítsünk egy szöveges állományt, amelybe soronként megadjuk a talált napokat és IP-címeket a napló szerinti sorrendben. Az állomány neve a bekért IP-címből épüljön fel úgy, hogy a címben szereplő pontok helyére az aláhúzásjel kerüljön, és a kiterjesztése txt legyen.

Letöltés: webstat.txt

 

Minta

1. feladat
A beolvasott sorok száma: 300

 

2. feladat
2020.02.12      60 látogató
2020.02.14      65 látogató
2020.02.11      60 látogató
2020.02.15      46 látogató
2020.02.13      69 látogató

 

3. feladat
A böngészők: Firefox, Edge, Safari, Chrome, Opera

 

4. feladat
www.google.com        40.6%
kereso.startlap.hu    0.3%
android-app           1.3%
honlap                51.3%
hu.m.wikipedia.org    0.6%
www.google.co.uk      0.3%
www.google.hu         5.3%

 

5. feladat
Amely címekről többször is jártak az oldalon egy adott napon: 176.63.29.84, 81.182.158.248, 176.63.7.203, 84.236.112.248, 176.63.15.239, 188.36.1.21, 78.131.50.229, 78.139.0.242, 79.122.109.60, 89.133.27.133, 176.63.25.170, 176.63.28.31, 188.156.108.17, 134.255.69.254, 89.134.196.236

 

6. feladat
Kérek egy IP címet: 188.156.108.17
A 188_156_108_17.txt fájl elkészült.

 

 

Megoldás

# 1. feladat
print('1. feladat')
with open('webstat.txt') as fajl:
     forras = fajl.read().splitlines()
adatok = [sor.split(' ') for sor in forras]
print('A beolvasott sorok száma:',len(adatok))

# 2. feladat
print('\n2. feladat')
minden_nap = [adat[1] for adat in adatok]
napok = set(minden_nap)
for nap in napok:
     print(nap,'\t',minden_nap.count(nap),'látogató')

# 3. feladat
print('\n3. feladat')
print('A böngészők:',', '.join({adat[0] for adat in adatok if adat[0]!='-'}))

# 4. feladat
print('\n4. feladat')
eleresek = [adat[3] for adat in adatok]
for eleres in set(eleresek):
     szazalek = int(eleresek.count(eleres)/len(eleresek)*1000)/10
     print(eleres,' '*(20-len(eleres)),str(szazalek)+'%')

# 5. feladat
print('\n5. feladat')
ip_cimek = [adat[2] for adat in adatok]
tobbszor = []
for ip_cim in set(ip_cimek):
     if ip_cimek.count(ip_cim)>1:
          tobbszor.append(ip_cim)
print('Amely címekről többször is jártak az oldalon egy adott napon:',', '.join(tobbszor))

# 6. feladat
print('\n6. feladat')
ip_cim = input('Kérek egy IP címet: ').split('.')
napok = [[adat[1],adat[2]] for adat in adatok if adat[2].split('.')[0]==ip_cim[0] and adat[2].split('.')[1]==ip_cim[1]]
fajl = open('_'.join(ip_cim)+'.txt','w')
for nap in napok:
     print(nap[0],nap[1],file=fajl)
fajl.close()
print('A','_'.join(ip_cim)+'.txt fájl elkészült.')

News Reporter
situs bandar togel terbesar terpercaya nama 10 situs togel terpercaya situs totoslot hoki gacor 4d situs bandar togel macau terpercaya toto slot hoki gacor 4d situs totoslot gacor 4d bandar togel resmi terbesar situs toto togel 4d terpercaya situs toto togel macau 4d hadiah 10 juta terbesar situs tototogel totoslot hadiah macau 10 juta toto slot 4d hoki gacor situs toto slot gacor hoki 4d situs togel 4d toto slot 4d toto togel 4d demo akun slot pragmatic gacor 2022 https://hoteles.udg.mx/clubdeportivo/wp-includes/ situs tototogel 4d bandar macau terpercaya slot hoki gacor 4d Daftar Situs Toto Slot Hoki Gacor 4D Deposit Pulsa 10RB SITUS TOTO SLOT HOKI GACOR 4D Deposit Pulsa Dana 10rb situs bandar togel hadiah 4d 10 juta terbesar terpercaya 10 situs bandar togel hadiah 4d terbesar resmi http://adn.fcm.uncu.edu.ar/plugins/ TOTO SLOT 4D > Daftar Situs Judi Slot Online Hoki Gacor Terpercaya Deposit Dana situs tototogel 4d rdtoto https://udc.go.ug/toto-togel https://sfmu.edu.bd/wp-includes situs tototogel 4d situs slot toto hoki gacor 4d situs toto slot hoki gacor 4d Daftar Situs Toto Slot Hoki Gacor 4D Deposit Pulsa 10rb Tanpa Potongan Situs Toto Togel 4D Terpercaya Bandar Toto Slot Hadiah Terbesar Resmi 2022 TOTOTOGEL > Daftar Situs Toto Togel Toto Slot 4D Gacor Hadiah 10 Juta Bandar Macau Bet 100 Perak TOTOTOGEL > Daftar Situs Toto Togel Toto Slot 4D Gacor Hadiah 10 Juta Bandar Macau Bet 100 Perak Situs Slot Joker123 TOTO SLOT GACOR 4D Terpercaya Gampang Menang Maxwin JOKER123 > Daftar Situs Toto Slot Hoki Gacor 4D Gampang Maxwin 2022 Situs Toto Slot Gacor 4D Judi Slot Joker123 Terpercaya Gampang Menang Maxwin Situs Toto Slot Joker123 Deposit Pulsa 10rb Tanpa Potongan Resmi Terpercaya JOKER123 > Daftar Situs Judi Toto Slot Gacor 4D Deposit Pulsa 10rb JOKER123 Situs Toto Slot Hoki Gacor 4D Deposit Pulsa 10rb TOTO SLOT > Daftar Situs Judi Slot Joker123 Terpercaya Gacor Deposit Pulsa 10RB TOTO TOGEL TOTO SLOT Hoki Gacor 4D Situs Resmi Terpercaya TOTOTOGEL Daftar Situs Toto Slot Hoki Gacor 4D Bandar Hadiah Terbesar Resmi Terpercaya TOTO TOGEL 4D > Situs Bandar Togel Resmi Hadiah 10 Juta Resmi Terpercaya https://class.cjps.ntpc.edu.tw/storage/totoslot/index.php TOTO SLOT 4D > Daftar Situs Judi Hoki SLot Gacor 4D Resmi Gampang Maxwin Daftar Situs Toto Togel 4D Bandar Togel Hadiah 10 Juta Resmi Terpercaya Terbesar TOTOSLOT > Daftar Situs Slot Toto Hoki Gacor 4D Resmi Terpercaya 2022 TOTOSLOT > Daftar Situs Slot Toto Hoki Gacor 4D Resmi Terpercaya 2022 TOTOSLOT > Daftar Situs Slot Toto Hoki Gacor 4D Resmi Terpercaya 2022 Daftar SItus Slot Toto Gacor 4D Hoki Deposit Pulsa Dana 10rb TOTO SLOT HOKI GACOR 4D > Daftar Situs Judi Slot Online Gacor 2022 Terpercaya HOKI SLOT GACOR 4D > Situs Toto Slot Gacor Terpercaya Resmi 2022 SITUS TOTO SLOT HOKI GACOR 4D DEPOSIT PULSA 10RB TANPA POTONGAN situs slot deposit pulsa 10rb tanpa potongan
Situs Toto Slot Hoki Gacor 4D 2022 Gampang Menang Maxwin situs nexus slot hoki gacor 4d slot4d gacor deposit pulsa 10rb tanpa potongan nexus slot 4d situs slot deposit dana tanpa potongan resmi 2022 situs slot deposit dana pulsa tanpa potongan 10rb situs slot deposit dana pulsa tanpa potongan 10rb situs bandar togel terbesar terpercaya situs bandar togel terbesar terpercaya situs bandar togel terbesar terpercaya