Как я могу извлечь один кусок данных из таблицы Википедии с BeautifulSoup - PullRequest
2 голосов
/ 25 апреля 2020

Итак, я пытаюсь узнать, сколько случаев заболевания коронавирусом в настоящее время подтверждено в Колумбии для веб-сайта. Мне нужно только показать количество случаев, и я использую BS4. Тем не менее, я знаю основы c о программировании и не знаю python. вот что у меня есть

import bs4

import requests

response = requests.get("https://es.wikipedia.org/wiki/Pandemia_de_enfermedad_por_coronavirus_de_2020_en_Colombia")

if response is not None:
    html = bs4.BeautifulSoup(response.text, 'html.parser')

    title = html.select(".infobox")[0].text
    paragraphs = html.select("tr")
    #for para in paragraphs:
        #print (para.text)

    mylist = soup.find_all('td')
    print(mylist.text)

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Вот еще один пример использования API вместо удаления из Википедии, в данном случае бесплатный covid19 API :

import requests

class Covid19ApiHelper:
    URL_API = 'https://api.covid19api.com/summary'

    def __init__(self):
        self._global_info = None
        self._countries = None

    def refresh(self):
        """Request data from the API and saves it"""
        response = requests.get(self.URL_API)
        data = response.json()

        self._global_info = data['Global']   
        self._countries = {item['CountryCode']: item for item in data['Countries']}

    def get_global_info(self):
        return self._global_info

    def get_country_info(self, countryCode):
        """Returns the information by country using the standard two digit country code"""
        return self._countries[countryCode]

if __name__=='__main__':
    covid_helper = Covid19ApiHelper()
    covid_helper.refresh()

    print(covid_helper.get_global_info())
    print(covid_helper.get_country_info('CO'))

Глобальный вывод:

{'NewConfirmed': 86850, 'TotalConfirmed': 2894581, 'NewDeaths': 5839, 'TotalDeaths': 202795, 'NewRecovered': 27616, 'TotalRecovered': 815948}

Выходные данные Колумбии:

{'Country': 'Colombia', 'CountryCode': 'CO', 'Slug': 'colombia', 'NewConfirmed': 261, 'TotalConfirmed': 5142, 'NewDeaths': 8, 'TotalDeaths': 233, 'NewRecovered': 
64, 'TotalRecovered': 1067, 'Date': '2020-04-26T09:16:56Z'}

Источник данных: https://covid19api.com/#details

0 голосов
/ 25 апреля 2020

Я пытаюсь узнать, сколько случаев коронавируса в настоящее время подтверждено в Колумбии

Существует множество API в режиме реального времени. данные доступны, и вам не нужно очищать Википедию для этой информации. Вот пример python:

import requests

j = requests.get("https://pomber.github.io/covid19/timeseries.json").json()
# j['Colombia'] # full `timeseries` that you can import in pandas

# to get latest available date, use [-1]:
confirmed = j['Colombia'][-1]['confirmed']
deaths = j['Colombia'][-1]['deaths']
recovered = j['Colombia'][-1]['recovered']
# {'date': '2020-4-24', 'confirmed': 4881, 'deaths': 225, 'recovered': 1003}

В качестве примечания я называю этот вирус con vid19

...