Я пытаюсь получить список из 500 ресторанов Амстердама с TripAdvisor; однако после 308-го ресторана я получаю следующую ошибку:
Traceback (most recent call last):
File "C:/Users/dtrinh/PycharmProjects/TripAdvisorData/LinkPull-HK.py", line 43, in <module>
writer.writerow(rest_array)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 6: ordinal not in range(128)
Я попробовал несколько вещей, которые нашел на StackOverflow, но пока ничего не работает. Мне было интересно, может ли кто-нибудь взглянуть на мой код и увидеть какие-либо потенциальные решения, которые были бы замечательными.
for item in soup2.findAll('div', attrs={'class', 'title'}):
if 'Cuisine' in item.text:
item.text.strip()
content = item.findNext('div', attrs=('class', 'content'))
cuisine_type = content.text.encode('utf8', 'ignore').strip().split(r'\xa0')
rest_array = [account_name, rest_address, postcode, phonenumber, cuisine_type]
#print rest_array
with open('ListingsPull-Amsterdam.csv', 'a') as file:
writer = csv.writer(file)
writer.writerow(rest_array)
break
cuisine_type
- это список, потому что вы используете.split
(и я не уверен, почему вы разбиваете на неразрывные пробелы...). Однако содержимое строки, которую вы передаете.writerow
, должно быть строками или числами. Кроме того, при использовании модуля Python 2csv
вы должны открывать файлы CSV в двоичном режиме, как указано в документы. Вам может быть полезна эта статья: Pragmatic Unicode, написанная ветераном SO Недом Батчелдером. - person PM 2Ring   schedule 16.11.2016