Как извлечь с этого сайта данные о случаях коронавируса в Индии (название штата, пострадавших и умерших) (https://www.mohfw.gov.in/) - PullRequest
1 голос
/ 26 марта 2020

это код для извлечения данных html из класса, в котором находятся мои данные. но как мне извлечь необходимые данные ( данные о состоянии ), как это не указано в заказе веб-сайт

import requests
import cloudscraper
from bs4 import BeautifulSoup
import re
import pandas as pd
import time
import datetime
scraper = cloudscraper.create_scraper()
html = scraper.get("https://www.mohfw.gov.in/").text
data = BeautifulSoup(html, 'html.parser')
li=data.find_all(class_='table-responsive')
li

Ответы [ 3 ]

2 голосов
/ 26 марта 2020
import pandas as pd

df = pd.read_html("https://www.mohfw.gov.in/")[-1]

df.to_csv("data.csv", index=False)

Вывод: Check-Online

enter image description here

1 голос
/ 26 марта 2020

Как насчет использования pandas. Он организован и создает DF напрямую. Например, в вашем случае: -

import requests
import pandas as pd
url = 'https://www.mohfw.gov.in/'
html = requests.get(url).content
df_list = pd.read_html(html)
df = df_list[-1]
print(df)
1 голос
/ 26 марта 2020

Данные заключены в элемент tbody. Вы можете использовать следующий код скрапы:

import scrapy
tables= response.xpath("(//tbody)[7]")
for data in tables:
    date = data.xpath("..//tr/td/text()")
    title_text = data.xpath("(//tbody)[7]/tr/td/a/text()")
    title_links = data.xpath("(//tbody)[7]/tr/td/a/@href")

    yield {
        'Date': date,
        'Title': title_text,
        'Links': title_links,
    }
...