【发布时间】:2014-11-29 01:46:59
【问题描述】:
使用 Python an Beautiful Soup,我创建了一个脚本,该脚本从网站上获取企业的名称、地址和电话号码,并将输出保存到 CSV 文件的三列中。
该脚本运行良好,但当我获得如下公司名称时它停止了:
u'\nLevel 12, 280 George Street SYDNEY\xa0 NSW\xa0 2000. . Sydney. NSW 2000\n'
问题出在“xa0”部分。错误消息指出:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 35: ordinal not in range(128)
我对这个错误的含义有一个模糊的概念,但不知道如何处理它。有什么想法吗?
谢谢
编辑:
我的脚本如下:
import bs4
import requests
page = requests.get('http://accountantlist.com.au/x123-Accountants-in-Sydney.aspx?Page=0')
soup = bs4.BeautifulSoup(page.content)
for company in soup.select('table#ctl00_ContentPlaceHolder1_dgLawyers tr > td > table'):
name = company.a.text
address = company.find_all('tr')[1].text
phone = company.tr.find_all('td')[1].text
with open('/home/kwal0203/Desktop/eggs.csv', 'a') as csvfile:
s = csv.writer(csvfile)
s.writerow([name,address,phone])
【问题讨论】:
-
您需要显示您正在使用的导致错误的代码,以及完整的回溯。
-
所以您在写入 csv 文件时遇到此错误。您能分享一下您是如何编写 csv 文件的吗?
-
我已将脚本添加到问题中,但不确定如何获取回溯?
-
抱歉,我遗漏了部分脚本。一秒钟。