擅长:python、mysql、java
<p>由于这是Python2,<code>urllib.urlopen().read()</code>调用返回一个字节字符串,很可能是用UTF-8编码的——您可以查看HTTP报头来查看是否包含了编码。我假设是UTF-8。在</p>
<p>在你开始处理内容之前,你不能解码这个外部的表现,这只会导致你流泪。一般规则:立即解码输入,仅对输出进行编码。在</p>
<p>以下是您的代码,只有两个修改</p>
<pre><code>import urllib2
from BeautifulSoup import BeautifulSoup
useragent = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11'}
request = urllib2.Request('SomeURL',None,useragent)
myreq = urllib2.urlopen(request, timeout = 5)
html = unicode(myreq.read(), "UTF-8")
#get paragraphs
soup = BeautifulSoup(html)
textList = soup.findAll('p')
mytext = ""
for par in textList:
if len(str(par))<2000:
print par
mytext +=" " + str(par)
print "the text is ", mytext
</code></pre>
<p>我所做的只是添加了<code>html</code>的unicode解码,并使用了<code>soup.findAll()</code>,而不是{<cd4>}。在</p>