Python 脚本 - 网页抓取



我正在做一个脚本,从URL获取一些数据(http://www.pmo.cz/portal/nadrze/cz/mereni_1_mes.htm(。我所需要的只是从这个图表中获取数据(和日期+时间(:图表

问题是我无法摆脱输出中的平面线,然后以某种方式检索数据...... 有没有办法摆脱线条+获取值?我是否以错误的方式做,或者我只是愚蠢,找不到就在我眼皮底下的简单解决方案?(我刚刚开始使用python,所以如果这只是另一个重复的问题,我很抱歉(

我尝试了 .rstrip 函数,尝试使用 for 循环将其删除,尝试将其转换为另一种数据类型,但似乎没有任何效果:(

我遵循了一个教程(我不记得是哪一个(,最后来到了这里:

import requests
from bs4 import BeautifulSoup
url = 'http://www.pmo.cz/portal/nadrze/cz/mereni_1_mes.htm'
res = requests.get(url)
html = res.content
soup = BeautifulSoup(html, 'html.parser')
text = soup.find_all(text=True)
output = ''
blacklist = [
'[document]',
'noscript',
'header',
'html',
'meta',
'head', 
'input',
'script',
]
for t in text:
if t.parent.name not in blacklist:
output += '{} '.format(t)
print(output)

输出:

UPOZORNĚNÍ: Veškerá uváděná data jsou bez záruky.




VD Vranov 

Tok:
Dyje

Koruna hráze:
353,39 [m n.m.]

Kóta přelivu:
350,10 [m n.m.]

Maximální retenční hladina:
351,45 [m n.m.]

Hladina zásobního prostoru:
348,45 [m n.m.]

Hladina stálého nadržení:
331,45 [m n.m.]

Výškový systém:
Balt p.v. 


Schema:








Přejít na aktuální data (týden)






Aktuální hodnoty  (25.01.2020 21:00):

Hladina vody v nádrži [m n.m.]

341,46 

Objem [mil. m3]

70,49 

Přítok [m 3 .s -1 ]

3,42 

Odtok [m 3 .s -1 ]

2,66 

Srážky [mm]

0,0 

Teplota vzduchu [°C]

-1,3 



你有很多换行符和空字符串,所以你需要删除它们。请尝试进行以下更改:

output = []
for t in text:
if t.parent.name not in blacklist:
target = t.strip().replace('n','') # remove spaces and newlines       
if len(target)>0: #remove empty strings
output.append(target)
for o in output:
print(o)

输出:

UPOZORNĚNÍ: Veškerá uváděná data jsou bez záruky.
VD Vranov
Tok:
Dyje

等。