擅长:python、mysql、java
<p>Google translate用于<code>GET</code>请求,而不是<code>POST</code>请求。但是,如果向请求中添加任何数据,<code>urrllib2</code>将自动提交一个<code>POST</code>。</p>
<p>解决方案是使用querystring构造url,这样您将提交一个<code>GET</code>。<br/>
您需要更改代码的<code>request = urllib2.Request('http://www.translate.google.com', urllib.urlencode(data))</code>行。</p>
<p>下面是:</p>
<pre><code>querystring = urllib.urlencode(data)
request = urllib2.Request('http://www.translate.google.com' + '?' + querystring )
</code></pre>
<p>您将得到以下输出:</p>
<pre><code><span id="result_box" class="short_text">
<span title="word" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'">
parola
</span>
</span>
</code></pre>
<p>顺便说一句,你有点违反了谷歌的服务条款;如果你做的不仅仅是为了训练而编写一个小脚本,那就去查一下。</em></p>
<h2>使用<code>requests</code></h2>
<p>我强烈建议您尽可能远离urllib,并使用优秀的<a href="http://docs.python-requests.org/en/latest/index.html" rel="noreferrer">^{<cd7>}</a>库,这将允许您在Python中有效地使用<code>HTTP</code>。</p>