1

これは、私が理解できないように見える本当に奇妙なエラーです。

import urllib2
from bs4 import BeautifulSoup

url = 'http://www.crummy.com/software/BeautifulSoup/bs4/doc/'
soup = BeautifulSoup(urllib2.urlopen(url))

print soup.title

これは戻ります

<title>Beautiful Soup Documentation — Beautiful Soup 4.0.0 documentation</title>

当然のことですが、「printsoup.title.string」に変更すると(上記のすべてからhtmlタグを除いたものが返されるはずです)、

Traceback (most recent call last):
  File "C:\Users\MyName\Desktop\MyProgram\Python\test.py", line 7, in <module>
    print soup.title.string
  File "C:\Python27\lib\idlelib\rpc.py", line 595, in __call__
    value = self.sockio.remotecall(self.oid, self.name, args, kwargs)
  File "C:\Python27\lib\idlelib\rpc.py", line 210, in remotecall
    seq = self.asynccall(oid, methodname, args, kwargs)
  File "C:\Python27\lib\idlelib\rpc.py", line 225, in asynccall
    self.putmessage((seq, request))
  File "C:\Python27\lib\idlelib\rpc.py", line 324, in putmessage
    s = pickle.dumps(message)
  File "C:\Python27\lib\copy_reg.py", line 74, in _reduce_ex
    getstate = self.__getstate__
RuntimeError: maximum recursion depth exceeded

私は周りを見回しましたが、このエラーを経験している人は他にいません。何かアドバイス?

編集:他のページで同じコードを試してみたところ、うまくいきました。たとえば、google.com が機能します。これは、ページの構成に関するものであることを意味します。

4

1 に答える 1

0

おそらく問題は、非 ASCII 文字が含まれているためです。printステートメントをこれに変更します

print soup.title.string.encode('ascii','ignore')
于 2013-07-31T07:27:16.330 に答える