使用 Python 从网站获取特定数据

时间:2021-05-14 09:53:59

标签: python html json beautifulsoup python-requests

代码:

import requests
from bs4 import BeautifulSoup

url="https://covid19.saglik.gov.tr/"
R=requests.get(url)             
print(R.text) 

问题:朋友们好,我必须从上述网站收到以下特定值。这些值每天都在变化。程序运行时,应该可以从网站上打印出指定的key。例如: print(data["tarih"]) , print(data["gunluk_test"]) , print( html 脚本中的 data["gunluk_vaka"] 等。我该怎么做?

代码的输出结果:

var sondurumjson = [{"tarih":"13.05.2021","gunluk_test":"201.295","gunluk_vaka":"11.534","gunluk_hasta":"1.217","gunluk_vefat":"238" "gunluk_iyilesen":"55.472","toplam_test":"50.259.943","toplam_hasta":"5.083.996","toplam_vefat":"44.059","toplam_iyilesen":"4.856"btopakilam_736 "","toplam_entube":"","hastalarda_zaturre_oran":"4,0","agir_hasta_sayisi":"2.765","yatak_doluluk_orani":"43,7","eriskin_yogun_bakim_doluluk_orani","6":"6 ":"32,4","ortalama_filyasyon_suresi":"","ortalama_temasli_tespit_suresi":"8","filyasyon_orani":"99,9"}];//]]>

3 个答案:

答案 0 :(得分:0)

看起来python已经识别了dict,所以json.loads失败了你是粘贴api的输出还是打印你正在处理的dict? 无论如何,如果这是你的 api 的结果,你可以这样做来访问字典中的所有内容:

sondurumjson = [{"tarih":"13.05.2021","gunluk_test":"201.295","gunluk_vaka":"11.534","gunluk_hasta":"1.217","gunluk_vefat":"238","gunluk_iyilesen":"55.472","toplam_test":"50.259.943","toplam_hasta":"5.083.996","toplam_vefat":"44.059","toplam_iyilesen":"4.856.763","toplam_yogun_bakim":"","toplam_entube":"","hastalarda_zaturre_oran":"4,0","agir_hasta_sayisi":"2.765","yatak_doluluk_orani":"43,7","eriskin_yogun_bakim_doluluk_orani":"65,0","ventilator_doluluk_orani":"32,4","ortalama_filyasyon_suresi":"","ortalama_temasli_tespit_suresi":"8","filyasyon_orani":"99,9"}]
new_object = sondurumjson[0]

print(new_object['tarih'])

答案 1 :(得分:0)

我认为你应该使用 R.json() 而不是 R.text

答案 2 :(得分:0)

导入请求

从 bs4 导入 BeautifulSoup

导入json

url="https://covid19.saglik.gov.tr/"

R=requests.get(url)

soup=BeautifulSoup(R.content,"html.parser")

script=soup.find_all("script")[18]

s=str(script).split('\nvar sondurumjson = ')

#print(s[1])

a=str(s[1])

b=a.split("\r")

#print(b[0])

c=b[0].partition(';')

数据=c[0] #打印(数据)

data = json.loads(data)

print("Tarih:", data[0]['tarih'])

print("Günlük 测试:", data[0]['gunluk_test'])

print("Günlük Vaka:", data[0]['gunluk_vaka'])