我试着解析一个纯文本文档的网页,它是用HTML编码的,所以我试着用BeautifulSoup来提取文本并列出一个列表,但是我没能做到。你知道吗
<body>
<pre>
--------------------
BDMEP - INMET
--------------------
Estação : PONTA PORA - MS (OMM: 83702)
Latitude (graus) : -22.55
Longitude (graus) : -55.71
Altitude (metros): 650.00
Estação Operante
Inicio de operação: 24/11/1941
Periodo solicitado dos dados: 01/01/2015 a 17/11/2016
Os dados listados abaixo são os que encontram-se digitados no BDMEP
Hora em UTC
--------------------
Obs.: Os dados aparecem separados por ; (ponto e vírgula) no formato txt.
Para o formato planilha XLS,
<a href="instrucao.html" target="_top" rel="facebox">siga as instruções</a>
--------------------
Estacao;Data;Hora;Precipitacao;TempMaxima;TempMinima;Insolacao;Evaporacao Piche;Temp Comp Media;Umidade Relativa Media;Velocidade do Vento Media;
83702;01/01/2015;0000;;;;;;;73.5;3.333333;
83702;06/01/2016;1200;5;;;;;;;;
83702;07/01/2016;0000;;;;;;;76.25;2.40072;
83702;01/02/2016;1200;15.2;;;;;;;;
</pre>
</body>
我感兴趣的是:
Piche;Temp Comp Media;Umidade Relativa Media;Velocidade do Vento Media;
83702;01/01/2015;0000;;;;;;;73.5;3.333333;
83702;06/01/2016;1200;5;;;;;;;;
83702;07/01/2016;0000;;;;;;;76.25;2.40072;
83702;01/02/2016;1200;15.2;;;;;;;;
理想的做法是构造一个数据帧并另存为CSV。你知道吗
到目前为止我试过这样的方法:
soup = BeautifulSoup(a.content, 'html.parser')
soup = soup.find_all('pre')
text = []
for i in soup:
print(i)
text.append(i)
但它并没有成功。它使它成为列表中的一个条目。你知道吗
你需要重新来做这个工作
在:
输出:
BS
对于HTML标记很有用,但是你大部分都是文本,所以使用字符串函数,比如split('\n')
和切片[start_row:end_row]
您的HTML文本
以及
或者在一条线上
如果表中有更多的行,则可以搜索最后一个
来查找表的开头
现在您可以使用
split(';')
将行拆分为列来创建熊猫的数据:)或者使用
io.StringIO
在内存中创建类似文件的对象并使用pd.read_csv()
或者
相关问题 更多 >
编程相关推荐