<p>这一行代码有几处很尴尬:</p>
<pre><code>phone_result= str(a).get_text().strip().encode("utf-8")
</code></pre>
<p>首先,<code>BeautifulSoup</code>使用unicode,因此Python2将其文本转换为<code>str</code>是很容易出错的。{{{cd2>调用一个<cd5}的对象是错误的。在</p>
<p>最后,您将<code>encode</code>调用到<code>str</code>,在python2中它已经被编码了,它可能会失败,因为python2将首先对其进行解码(使用默认编码),然后再对其进行编码。在</p>
<p>因此,请尝试使用此修复程序,假设网页编码为<code>utf8</code>:</p>
^{pr2}$
<p>这条线也有一个问题:</p>
<pre><code>phone=soup.find("div", "phone-content")
</code></pre>
<p><a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html?highlight=get_text#find" rel="nofollow">^{<cd9>}</a>只返回一个结果,<a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html?highlight=get_text#tag" rel="nofollow">^{<cd10>}</a>对象,最好使用<a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html?highlight=get_text#calling-a-tag-is-like-calling-find-all" rel="nofollow">^{<cd11>}</a>,它将返回<code>Tag</code>对象的列表。不同之处在于,当您迭代单个<code>Tag</code>对象的结果时,您将得到<a href="http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html?highlight=get_text#navigablestring" rel="nofollow">^{<cd14>}</a>s,它没有<code>get_text</code>方法。当您迭代一个<code>Tag</code>对象的列表时,您会在迭代中得到<code>Tag</code>对象,这些对象具有<code>get_text</code>方法。在</p>
<p>希望这有帮助!在</p>