Код обращается к доске объявлений и индексирует / сообщает главные темы. Используя WING IDE, он работает нормально и не сообщает об ошибках. Однако при запуске через командную строку выводится сообщение об ошибке, в котором говорится, что он не может правильно закодировать символ. Это первый раз, когда я видел это и не нашел хорошего ресурса, чтобы это исправить.
Поскольку в WING все работает нормально, я не уверен, что еще можно добавить к коду, который предотвратит возникновение этой проблемы в командной строке.
import requests
from bs4 import BeautifulSoup
url = raw_input("Enter the board URL: ")
print "\n"
#send the HTTP request
response = requests.get(url)
if response.status_code == 200:
#pull the content
html_content = response.content
#send the page to BeautifulSoup
html_doc = BeautifulSoup(html_content, "html.parser")
#extract topic data
topic_spider = html_doc.find_all("span",{"class":"subject"})
data = []
for topic in topic_spider:
if topic.text!='':
data.append(topic.text)
topiclist = list(dict.fromkeys(data))
topiclist.sort(reverse=False)
for item in topiclist:
print ('[*] ' + item)
WING работает без ошибок. Через CMD следующий результат достигается после нескольких успешных результатов:
[*] Parenting (successful result)
Traceback (most recent call last):
File "D:\xxxx\topicindexer.py", line 29, in <module>
print ('[*] ' + item)
File "C:\Python27\lib\encodings\cp437.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2019' in position 31: character maps to <undefined>