Я не могу получить точные цифры в веб-таблице - PullRequest
0 голосов
/ 01 августа 2020
import requests
import bs4
from tkinter import *

def statno():
    covidTk = Tk()
    covidTk.title('Data statistics of COVID-19')

    web = requests.get('https://www.worldometers.info/coronavirus')
    objSoup = bs4.BeautifulSoup(web.text,'lxml')
    
    lb1 = Label(covidTk,text='Country: ')
    lb1.grid(row=1,column=0,padx=10,pady=10)

    lb2 = Label(covidTk,text=entcon.get())
    lb2.grid(row=1,column=1,padx=10,pady=10)


    table = objSoup.find('table',attrs={'id':'main_table_countries_today'})
    headings = [th.get_text() for th in table.find('tr').find_all('th')]

    set_of_datas = []
    for row in table.find_all('tr')[1:]:
        data = dict(zip(headings,(td.get_text() for td in row.find_all('td'))))
        set_of_datas.append(data)

    print(set_of_datas)

    

win = Tk()
win.title('COVID-19 tracker')

web = requests.get('https://www.worldometers.info/coronavirus')
objSoup = bs4.BeautifulSoup(web.text,'lxml')

lbtitle = Label(win,text='Covid-19 Statistics')
lbtitle.grid(row=0,columnspan=2)

lbcon = Label(win,text='Country: ')
lbcon.grid(row=1,column=0,padx=10,pady=20)

conname = StringVar()
entcon = Entry(win,textvariable=conname)
entcon.grid(row=1,column=1,padx=10,pady=20)

btncheck = Button(win,text='Check data',command=statno)
btncheck.grid(row=2,column=1,padx=10,pady=10)

lbcase = Label(win,text='Coronavirus Cases: ')
lbcase.grid(row=3,column=0)

total = objSoup.find_all('div',{'class':'maincounter-number'})
total_cases = total[0]
lbdat1 = Label(win,text=total_cases.text)
lbdat1.grid(row=3,column=1)

lbdeaths = Label(win,text='Deaths: ')
lbdeaths.grid(row=4,column=0)

total_deaths = total[1]
lbdat2 = Label(win,text=total_deaths.text)
lbdat2.grid(row=4,column=1)

lbcase = Label(win,text='Recovered: ')
lbcase.grid(row=5,column=0)

total_recover = total[2]
lbdat3 = Label(win,text=total_recover.text)
lbdat3.grid(row=5,column=1)

Когда I print(set_of_datas) выходят значения, они плохо кодируются. Какие-нибудь способы заставить значение отображаться без искаженных строк? Я могу спросить, нужно ли мне использовать пересечение строк и столбцов? Как связать данные, используя таблицу страны со статистикой номеров вместе? Потому что я не знаю, как получить соответствующие данные, если я наберу название страны и нажму кнопку. Может ли кто-нибудь научить меня методу ссылки на данные в таблице?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...