我正在python中抓取一个£值,当我尝试将其写入Excel工作表时,进程中断,出现以下错误
UnicodeEncodeError: 'ascii' 编解码器无法在位置 0 中编码字符 u'\xa3':序号不在范围内(128)
£ 符号正在打印,cmd 提示符中没有任何错误。有人可以建议如何将值(1,750 英镑)写到我的工作表中(带或不带英镑符号)。非常感谢...
import requests
from bs4 import BeautifulSoup as soup
import csv
outputfilename = 'Ed_Streets2.csv'
outputfile = open(outputfilename, 'wb')
writer = csv.writer(outputfile)
writer.writerow([Rateable Value])
url = 'https://www.saa.gov.uk/search/?SEARCHED=1&ST=&SEARCH_TERM=city+of+edinburgh%2C+EDINBURGH&ASSESSOR_ID=&SEARCH_TABLE=valuation_roll_cpsplit&PAGE=0&DISPLAY_COUNT=100&TYPE_FLAG=CP&ORDER_BY=PROPERTY_ADDRESS&H_ORDER_BY=SET+DESC&ORIGINAL_SEARCH_TERM=city+of+edinburgh&DRILL_SEARCH_TERM=BOSWALL+PARKWAY%2C+EDINBURGH&DD_TOWN=EDINBURGH&DD_STREET=BOSWALL+PARKWAY#results'
response = session.get(url)
html = soup(response.text, 'lxml')
prop_link = html.find_all("a", class_="pagelink button small")
for link in prop_link:
prop_url = base_url+(link["href"])
response = session.get(prop_url)
prop = soup(response.content,"lxml")
RightBlockData = prop.find_all("div", class_="columns small-7 cell")
Rateable_Value = RightBlockData[0].get_text().strip()
print (Rateable_Value)
writer.writerow([Rateable_Value])
您需要将unicode
对象显式编码为字节。否则,您的系统将自动尝试使用ascii
编解码器对其进行编码,这将失败,并显示非ASCII字符。所以,这个:
Rateable_Value = Rateable_Value.encode('utf8')
在你之前
writer.writerow([Rateable_Value])
应该做这个伎俩。