如何使用熊猫正确地将 HTML 解析为 Unicode 字符串



我正在运行一个Python程序,该程序获取UTF-8编码的网页,我使用pandas(read_html(从HTML表中提取一些文本并将结果写入csv文件

但是,当我将此文本写入文件时,其中的所有空格都以意外的编码写入(示例 \xd0\xb9\xd1\x82\xd0\xb8(。为了解决这个问题,我添加了一行 i = i.split(" "(之后,CSV 文件中的所有空格都替换字符,以下示例:

['0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '2', '', '', '3n0', '', '', '', '', '', '', '', 'number', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'last name', '', 'number', 'plan', 'NaNn1', '', '', '', '', '', '', '', '', '', 'NaN', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'NaN', '', '', 'not', 'NaNn2', '', '', '', '', '53494580', '', '', '', '', '', '', '', '', '', '+', '(53)494580', '', '', '', '', '', '', '', '', 'NP_551', 'NaNn3', '', '', '', '', '53494581', '', '', '', '', '', '', '', '', '', '+', '(53)494581', '', '', '', '', '', '', '', '', 'NP_551', 'NaNn4', '', '', '', '']

我想摆脱字符('',(有没有办法解决这个问题?任何指示将不胜感激。

代码蟒蛇:

import pandas as pd
import html5lib
filename="1.csv" 
file=open(filename,"w",encoding='UTF-8', newline='n'); 
output=csv.writer(file, dialect='excel',delimiter =' ') 
r = requests.get('http://10.45.87.12/og?sh=1&CallerName=&Sys=.79.83.86.51&')
pd.set_option('max_rows',10000) 
df = pd.read_html(r.content)
for i in df:
    i = str(i)
    i = i.strip()
    i = i.encode('UTF-8').decode('UTF-8')
    i = i.split(" ")
    output.writerow(i)
 file.close()

可以使用筛选器方法删除空值。 您可以在"i = i.split(" "(之后添加以下代码片段

A = ['0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '2', '', '', '3n0', '', '', '', '', '', '', '', 'number', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'last name', '', 'number', 'plan', 'NaNn1', '', '', '', '', '', '', '', '', '', 'NaN', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'NaN', '', '', 'not', 'NaNn2', '', '', '', '', '53494580', '', '', '', '', '', '', '', '', '', '+', '(53)494580', '', '', '', '', '', '', '', '', 'NP_551', 'NaNn3', '', '', '', '', '53494581', '', '', '', '', '', '', '', '', '', '+', '(53)494581', '', '', '', '', '', '', '', '', 'NP_551', 'NaNn4', '', '', '', '']
print filter(None, A)

输出:

['0', '1', '2', '3n0', 'number', 'last name', 'number', 'plan', 'NaNn1', 'NaN', 'NaN', 'not', 'NaNn2', '53494580', '+', '(53)494580', 'NP_551', 'NaNn3', '53494581', '+', '(53)494581', 'NP_551', 'NaNn4']

相关内容

  • 没有找到相关文章

最新更新