代码在IDLE中工作,但在Pycharm中没有,这是完整的代码:
import sys
import urllib
import urllib2
from bs4 import BeautifulSoup
type_keyword = "唯品会与消协共同搭建绿色维权通道"
url = "http://www.baidu.com/s?wd=" + urllib.quote(type_keyword.decode(sys.stdin.encoding).encode('gbk'))
openpage = urllib2.urlopen(url).read()
soup = BeautifulSoup(openpage)
for child in soup.findAll("h3", {"class": "t"}):
geturls = child.a.get('href')
print urllib2.urlopen(geturls).geturl()
点击“运行”后,Pycharm将返回错误,如下所示:
C:\Python27\python.exe C:/Python27/ParseWeb/ParseWeb.py
File "C:/Python27/ParseWeb/ParseWeb.py", line 3
SyntaxError: Non-ASCII character '\xe4' in file C:/Python27/ParseWeb/ParseWeb.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Process finished with exit code 1
非常有趣的是,无论我在第3行放置什么,Pycharm都会给出错误结果。
可能是什么原因?谢谢!
答案 0 :(得分:2)
答案 1 :(得分:1)
您粘贴的代码没有第3行错误所示的任何字符。
如果C:/Python27/ParseWeb/ParseWeb.py
不是您要运行的文件的名称,您可以尝试在PyCharm中打开要运行的文件,然后按 Ctrl + Shift + F10 (它运行当前打开的文件。)
您还应该通过在文件的前两行中添加它来定义Python文件的编码:
# -*- coding: utf-8 -*-
这似乎是必要的,并且代码中包含非ASCII字符,但首先要确保的是运行正确的文件。