【发布时间】:2016-03-26 00:26:18
【问题描述】:
这是我目前拥有的代码
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36'}
r = requests.get("http://www.google.com", headers=headers)
page_text = r.text
soup = BeautifulSoup(page_text, 'html.parser')
print(soup.prettify())
理论上它应该向google发送一个请求,取回文本并使用beautifulsoup的prettify()方法
这是他们的示例代码(来自http://www.crummy.com/software/BeautifulSoup/bs4/doc/#getting-help)
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.prettify())
每次运行此代码时,我都会收到编解码器错误。这是确切错误的屏幕截图
找到解决方案
解决方案不是使用 print() 从堆栈交换成员中使用此打印方法。
def uprint(*objects, sep=' ', end='\n', file=sys.stdout):
enc = file.encoding
if enc == 'UTF-8':
print(*objects, sep=sep, end=end, file=file)
else:
f = lambda obj: str(obj).encode(enc, errors='backslashreplace').decode(enc)
print(*map(f, objects), sep=sep, end=end, file=file)
【问题讨论】:
-
问题是你的shell编码,cmd基本上是垃圾。如果我是你,我会省去很多麻烦并安装 cygwin cygwin.com 或使用一个像样的 ide
-
你会推荐什么ide?span>
-
请放心,pycharm,他们有免费的社区版
标签: python web beautifulsoup python-requests