我想解析一個純文本文檔的網頁,它以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)
但它並沒有這樣做的伎倆。它使它成爲列表中的一個條目。
它是文本,以便使用標準的'string'功能,如'分裂('\ n')',或切片'[start_row:end_row]'。 BS僅在HTML標籤中有用。 – furas
啊,好像我在錯誤的方向發射了 –
'我試圖解析網頁是一個純文本文檔'所以你想要的是文本解析工具。解析文本看起來是這項任務的主要部分。很少,如果有的話,真的是HTML解析。 'bs4'非常適合HTML解析,但這不是真正的任務。 @furas在這方面給出了很好的答案;如果它對你有幫助,一定要接受它作爲答案。 – sytech