Очистка веб-данных без результата - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь извлечь данные (59 805) из указанного URL. И я использую BeautifulSoup и запрашиваю пакет Python.

Ниже приведен код, который я пытаюсь, но он не дает мне результата. Ниже приведен код HTML, из которого я пытаюсь извлечь. Результатом должно быть «Подтверждено», 59,805

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd

case_type = []
count = []

url = requests.get('https://www.covid19india.org/')
soup = bs(url.content,'html.parser')

for a in soup.findAll('div',  attrs={'class':'level-item is-cherry fadeInUp'}):
    b = a.find('h1')
    c = a.find('h5')
    case_type.append(c.text)
    count.append(b.text)

df = pd.DataFrame({'Case Type':case_type, 'Count':count})
print(df)

HTML фрагмент кода с указанной страницы

 <div class="Level">
      <div class="level-item is-cherry fadeInUp" style="animation-delay: 1s;">
        <h5>Confirmed</h5>
        <h4>[+115]</h4>
        <h1>59,805 </h1>
      </div>
      <div class="level-item is-blue fadeInUp" style="animation-delay: 1.1s;">
        <h5 class="heading">Active</h5>
        <h4>&nbsp;</h4>
        <h1 class="title has-text-info">39,914</h1>
      </div>
      <div class="level-item is-green fadeInUp" style="animation-delay: 1.2s;">
        <h5 class="heading">Recovered</h5>
        <h4>[+14]</h4>
        <h1 class="title has-text-success">17,901 </h1>
      </div>

1 Ответ

0 голосов
/ 09 мая 2020

Этот сайт был создан в React, поэтому контент, который вы загружаете через запросы, не будет включать весь контент сайта, поскольку он загружается динамически.

Если вы посмотрите на сетевые запросы, которые делает сайт когда он загрузится, вы увидите, что информация поступает из:

https://api.covid19india.org/data.json

Итак, вы можете (при условии, что вы не влияете на производительность сайта / имеете разрешение):

r = requests.get('https://api.covid19india.org/data.json')
j = r.json()
confirmed = j['statewise'][0]['confirmed']
print(confirmed)
...