正则表达式python web抓取

2024-10-03 06:18:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做这个网站的网页抓取https://coronavirus.gob.mx/datos/ 我成功地刮取了这些变量:“Confirmados”、“negative”、“Sospechosos”和“debunceons”。这些变量的代码行与此类似(请参考下面的代码)

document.getElementById("gsPosDIV").innerHTML = (47144).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ",");

我通过库请求成功地实现了此正则表达式,并重新:

confirmados = re.search(r'document\.getElementById\("gsPosDIV"\)\.innerHTML = \((\d+)', raw_data).group(1)

这是我的问题

对于变量“hospitalizados”,这是代码行document.getElementById("vHos").innerHTML = "39.15 %";,我试图构建与另一个类似的正则表达式,这是我所做的:

hospitalizados = re.search(r'document\.getElementById\("vHos"\)\.innerHTML = \\d+(?:\\.\\d+)?%', raw_data).group(1)

这是我的输出'NoneType' object has no attribute 'group' 如何为变量“hospitalizados”构建正确的正则表达式


Tags: 代码httpsre网页searchdataraw网站
1条回答
网友
1楼 · 发布于 2024-10-03 06:18:54

试试这个

raw_data = 'document.getElementById("vHos").innerHTML = "39.15 %";'

print(re.search(r'^document\.getElementById\("vHos"\)\.innerHTML\s+=\s+"(\d+.\d+)', raw_data).group(1))

39.15

相关问题 更多 >