Python抓取编码excel公式

Python抓取编码excel公式,python,web-scraping,beautifulsoup,character-encoding,Python,Web Scraping,Beautifulsoup,Character Encoding,我正试图将网站刮到csv并处理这些数据,但文本公式无法正常工作。我真的不知道我做错了什么,但我猜是编码部分 这是python部分: page = requests.get(url) encoding = page.encoding if 'charset' in page.headers.get('content-type', '').lower() else None soup = BeautifulSoup(page.content, 'htm

我正试图将网站刮到csv并处理这些数据,但文本公式无法正常工作。我真的不知道我做错了什么,但我猜是编码部分

这是python部分:

        page = requests.get(url)
        encoding = page.encoding if 'charset' in page.headers.get('content-type', '').lower() else None
        soup = BeautifulSoup(page.content, 'html.parser', from_encoding=encoding)
        example = soup.find(class_= htmlClass).get_text()
        example = "".join([s for s in example.splitlines(True) if s.strip()])
        example = example.splitlines()
        outputList.append(example)
[……]

csv中的文本看起来不错,但如果我尝试使用一些匹配公式,它通常找不到数据<代码>=匹配(“*13 MARCH*”;F1:F20;0)将在列中有文本MARCH 13时给出N/A

我已经做了很多更改和测试,我注意到当我使用它时:
使用编解码器。打开(outputFile,“w”,“utf-8”)作为文件句柄:
我在CSV文件中有特殊字符,这可能解释了匹配公式无法正确查找文本的原因

如果有帮助的话,我实际上是通过脚本在Google Sheet中导入csv,然后使用匹配公式,脚本是:

function importFromCSV() {
  var file = DriveApp.getFilesByName("menulist.csv");
  var csvFile = file.next().getBlob().getDataAsString();
  var csvData = Utilities.parseCsv(csvFile, ";");
  var ss = SpreadsheetApp.openById("xxx");
  var sheet = ss.getSheetByName('import');
  sheet.getRange('A7:AZ60').clear()
  sheet.getRange(7,1, csvData.length, csvData[0].length).setValues(csvData);
}
我用上面的代码添加了
var csvFile=file.next().getBlob().getDataAsString('ISO-8859-1')避免红宝石,但匹配公式仍然不起作用


你知道我在做什么吗?

试试使用,希望它能解决你的问题

with codecs.open(outputFile, "w", "utf-8-sig") as fileHandle:

你能分享一份数据样本/给我们一份关于这个问题的演示电子表格吗?当然!谢谢,我试过了,它显示了CSV文件中的特殊字符。(杜伦迪9 AU VENDREDI 13 MARS)编辑:对不起,这是关于“utf-8”的。“utf-8-sig”不显示特殊字符,但公式在excel中仍然不起作用。@bobish,对编码不太确定,但我查看了您的工作表,并尝试将公式与13而不是13 MARS匹配,结果成功。结果表明,实公式是空间特征。我还尝试用替换公式删除源文本中的所有空格,结果仍然返回13个MARS。希望这是有帮助的
with codecs.open(outputFile, "w", "utf-8-sig") as fileHandle: