目前正在努力处理 .csv 中的以下输出,其中它们是各种随机字符,其中是玩家的名称和值,而这些字符不应该存在
(我在下面给出了输出图片)
我想知道我在努力消除随机字符的代码中出了什么问题
我正在尝试删除下面的字符,例如 Â、Ã、©、‰ 等。 有什么建议吗?
Python 代码
#importing
import requests
from bs4 import BeautifulSoup
import pandas as pd
headers = {'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/47.0.2526.106 Safari/537.36'}
#calling websites
page = "https://www.transfermarkt.co.uk/transfers/transferrekorde/statistik/top/plus/0/galerie/0?saison_id=2000"
pageTree = requests.get(page, headers=headers)
pageSoup = BeautifulSoup(pageTree.content, 'html.parser')
#calling players names
Players = pageSoup.find_all("a", {"class": "spielprofil_tooltip"})
#Let's look at the first name in the Players list.
Players[0].text
#calling value of players
Values = pageSoup.find_all("td", {"class": "rechts hauptlink"})
#Let's look at the first name in the Values list.
Values[0].text
PlayersList = []
ValuesList = []
for i in range(0,25):
PlayersList.append(Players[i].text)
ValuesList.append(Values[i].text)
df = pd.DataFrame({"Players":PlayersList,"Values":ValuesList})
df.to_csv('2000.csv', index=False)
df.head()
============================================= =====================
我的 Excel 输出
请您参考如下方法:
...
utf8_bom = '\xEF\xBB\xBF'
with open('2000.csv', 'w') as csv_file:
csv_file.write(utf8_bom)
df.to_csv(csv_file, index=False, mode='a')
说明: Material list 是byte order mark (q.v.)。如果 Excel 在 CSV 文件的开头找到它,它会使用它来确定编码,在您的情况下是 UTF-8(默认编码 - 正确 - 对于 Python 3)。
编辑
正如 Mark Tolonen 所指出的,上面的紧凑版本是以下代码:
df.to_csv('2000.csv', encoding='utf-8-sig', index=False)
编码名称中的-sig代表“签名”,即开头的BOM,微软软件使用它来检测编码。另见 Encodings and Unicode节codecs手册。
