擅长:python、mysql、java
<p>对于只需要进行一个或两个网络交互的小脚本来说,<code>urllib2</code>是很好的,但是如果您要做更多的工作,您可能会发现,<a href="http://code.google.com/p/urllib3/">^{<cd2>}</a>,或者<a href="http://docs.python-requests.org/en/v0.10.7/index.html">^{<cd3>}</a>(这并不是巧合地建立在前者的基础上)可能更适合您的需要。您的特定示例可能如下所示:</p>
<pre><code>from itertools import count
import requests
HEADERS = {'user-agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
URL = "http://www.example.com/img%03d.png"
# with a session, we get keep alive
session = requests.session()
for n in count():
full_url = URL % n
ignored, filename = URL.rsplit('/', 1)
with file(filename, 'wb') as outfile:
response = session.get(full_url, headers=HEADERS)
if not response.ok:
break
outfile.write(response.content)
</code></pre>
<p>编辑:如果可以使用常规HTTP身份验证(强烈建议使用<code>403 Forbidden</code>响应),则可以使用<code>auth</code>参数将其添加到<code>requests.get</code>中,如下所示:</p>
<pre><code>response = session.get(full_url, headers=HEADERS, auth=('username','password))
</code></pre>