Python 3.x 从找不到表相关标记的网页中删除数据
我试图从URL中提取“新冠病毒-19状态”数据。虽然页面以表格形式显示数据,但我认为没有直接嵌入表。我没有找到Python 3.x 从找不到表相关标记的网页中删除数据,python-3.x,web-scraping,beautifulsoup,Python 3.x,Web Scraping,Beautifulsoup,我试图从URL中提取“新冠病毒-19状态”数据。虽然页面以表格形式显示数据,但我认为没有直接嵌入表。我没有找到,等标题 有人能帮我提取表格数据吗 from urllib.request import Request, urlopen from bs4 import BeautifulSoup url = 'https://www.mygov.in/covid-19/' html = urlopen(url) soup = BeautifulSoup(html,'lxml') type(soup)
,
等标题
有人能帮我提取表格数据吗
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup
url = 'https://www.mygov.in/covid-19/'
html = urlopen(url)
soup = BeautifulSoup(html,'lxml')
type(soup)
title = soup.title
print(title)
<title>#IndiaFightsCorona COVID-19 in India, Corona Virus Tracker | mygov.in </title>
text = soup.get_text()
print(soup.text)
#IndiaFightsCorona COVID-19 in India, Corona Virus Tracker | mygov.in
@import url("//www.mygov.in/modules/system/system.base.css?qfdcj4");
@import url("//www.mygov.in/modules/system/system.menus.css?qfdcj4");
@import url("//www.mygov.in/modules/system/system.messages.css?qfdcj4");
tables= soup.find_all('table')
print(tables)
[]
rows= soup.find_all('tr')
print(rows[:10])
[]
从urllib.request导入请求,urlopen
从bs4导入BeautifulSoup
url='1〕https://www.mygov.in/covid-19/'
html=urlopen(url)
soup=BeautifulSoup(html,'lxml')
类型(汤)
title=soup.title
印刷品(标题)
#印度的IndiaFightsCorona新冠病毒-19,Corona病毒追踪者| mygov.in
text=soup.get_text()
打印(soup.text)
#印度的IndiaFightsCorona新冠病毒-19,Corona病毒追踪者| mygov.in
@导入url(“//www.mygov.in/modules/system/system.base.css?qfdcj4”);
@导入url(“//www.mygov.in/modules/system/system.menus.css?qfdcj4”);
@导入url(“//www.mygov.in/modules/system/system.messages.css?qfdcj4”);
tables=soup.find_all('table'))
打印(表格)
[]
行=汤。全部查找('tr')
打印(行[:10])
[]
我想通过单击下图所示的“COVID-19状态”标题末尾的“+”按钮,从显示的表格中提取数据
根据我在你的帖子中的理解,你必须从表中获取的Covid19状态数据 使用python试试下面的方法——简单、直接、可靠、快速,在处理请求时所需的代码更少
您希望从页面中获取哪些信息?我看不到桌子there@Andrej,请查看添加到问题中的其他信息。谢谢,谢谢,这很有效。但是,我想从按下页面“COVID-19状态”标题末尾的“+”按钮时出现的表中提取数据。为了清楚起见,我在原始问题中添加了图片。@Srinivas此脚本仅提取表数据。如果您运行并匹配所有4个KPI的值,您将了解确切的细节。如果您对上述解决方案是否适用还有任何疑问,请告知我,然后请投票并接受它-谢谢。。但是我看到标题是不同的。代码中映射到名称的jason_数据字段与网页中显示的不同。我可以根据网页重命名代码中的json字段,但我希望它们直接来自网页。希望你能理解我想表达的意思。不管标题是相同的还是不同的,因为HTML表格标题只是用来表示和阅读的。如果更改JSON字段的名称,则不会得到任何结果,但会出现一些错误。看看我在print语句中提到的文本,它只是向您显示,我正在获取这些特定信息,而不管我的列/标题的名称如何。这也不会影响数据的原始性。如果您运行这些值并将其与网站匹配,您将发现它们是相同的。
import requests
from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
def scrape_covid19_india_stats():
URL = 'https://www.mygov.in/sites/default/files/covid/covid_state_counts_ver1.json'
json_data = requests.get(URL,verify=False).json()
for state_wise in json_data['Name of State / UT']:
print('-'*100)
print('State : ' + json_data['Name of State / UT'][state_wise] + ' , ' +
'Total Confirmed Cases : ' + str(json_data['Total Confirmed cases'][state_wise]) + ' , ' +
'Active Cases : ' + str(json_data['Active'][state_wise]) + ' , ' +
'Recovered/Discharged/Migrated: ' + str(json_data['Cured/Discharged/Migrated'][state_wise]) + ' , ' +
'Deceased : ' + str(json_data['Death'][state_wise]) + ' , ' +
'Diff. Confirmed Cases : ' + str(json_data['diff_confirmed_covid_cases'][state_wise]) + ' , ' +
'Diff. Active Cases : ' + str(json_data['diff_active_covid_cases'][state_wise]) + ' , ' +
'Diff. Cured Cases : ' + str(json_data['diff_cured_discharged'][state_wise]) + ' , ' +
'Diff. Deceased Cases : ' + str(json_data['diff_death'][state_wise]))
print('-'*100)
scrape_covid19_india_stats()