我总是在PyCharm中编写并运行我的程序,但是当我在常规python中打开它时它会给我这个错误..(它在pycharm中工作)
from selenium import webdriver
import time
import random
print("\n")
user_input = input("Username: ")
##########################################################
path = r"C:\Users\John\Desktop\chromedriver.exe"
driver = webdriver.Chrome(path)
##########################################################
text_file = open(user_input + str(random.random()) + ".txt", "w")
text_file.write("GoogleSearch:\n\n")
##########################################################
print("Google results:\n")
driver.get("https://www.google.com/#q=" + user_input)
for n in range(20):
try:
driver.find_element_by_xpath("""//*[@id="pnnext"]/span[2]""").click()
except: print("out of pages")
pass
time.sleep(2)
posts2 = driver.find_elements_by_class_name("_Rm")
for post2 in posts2:
print(post2.text)
text_file.write(post2.text + "\n\n")
print("\n")
print("Pipl results:\n\n")
text_file.write("\n\n")
text_file.write("Pipl results:\n\n")
driver.get("https://pipl.com/search/?q=" + user_input + "&l=&sloc=&in=5")
posts1 = driver.find_elements_by_class_name("line1")
for post1 in posts1:
print(post1.text)
text_file.write(post1.text + "\n")
time.sleep(1)
driver.close()
Traceback (most recent call last):
File "C:\Users\John\Desktop\peopleSearchTool.py", line 32, in <module>
print(post2.text)
File "C:\Users\John\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp437.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u203a' in position 23: character maps to <undefined>
答案 0 :(得分:0)
问题的根源很可能是代码页。 PyCharm在带有Unicode代码页的控制台中运行程序,而独立运行显然可以在带有代码页437(存在于20世纪80年代)的控制台中运行。 Unicode代码页包含一个代码为#203a的字符,但代码页437不包含,因为它只包含256个字符。
因此,为了打印包含代码高于FF的字符的字符串,您必须对字符串进行编码/解码或更改控制台代码页。 但请注意,这两种方法都会带来很多问题。
更好的选择就是坚持使用Unicode,永远不会打印到非Unicode控制台。