是的,它看起來像urllib2只是忽略了Content-Type
屬性。
由於現在大多數網頁都是UTF-8編碼,所以我只是使用快速和髒的方法來處理ISO-8859-1頁面。很明顯,如果你想抓取不是UTF-8編碼的中文頁面,這是行不通的。
這不是很漂亮,但它爲我工作:
def read_url(url):
reader_req = urllib2.Request(url)
reader_resp = urllib2.urlopen(reader_req)
reader_resp_content = reader_resp.read()
reader_resp.close()
try:
return reader_resp_content.decode('utf-8')
except:
pass
try:
iso_string = reader_resp_content.decode('iso-8859-1')
print 'UTF-8 decoding failed, but ISO-8859-1 decoding succeeded'
return iso_string
except Exception, e:
print e
raise
編輯:因爲我已經意識到,這太黑客和使用要求庫,這似乎處理的編碼只要找到開始:http://docs.python-requests.org/
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
t = r.text
謝謝你的建議。 – Jask 2010-09-10 16:17:42