python urllib2.openurl不适用于特定的URL(重定向)?

时间:2010-03-24 15:44:54

标签: python urllib2

我需要下载一个CSV文件,该文件可以在浏览器中正常使用:

http://www.ftse.com/objects/csv_to_csv.jsp?infoCode=100a&theseFilters=&csvAll=&theseColumns=Mw==&theseTitles=&tableTitle=FTSE%20100%20Index%20Constituents&dl=&p_encoded=1&e=.csv

以下代码适用于任何其他文件(url)(具有完全限定的路径),但是上面的URL是下载800字节的乱码。

def getFile(self,URL):

    proxy_support = urllib2.ProxyHandler({'http': 'http://proxy.REMOVED.com:8080/'})
    opener = urllib2.build_opener(proxy_support)
    urllib2.install_opener(opener)
    response = urllib2.urlopen(URL)
    print response.geturl()
    newfile = response.read()
    output = open("testFile.csv",'wb')
    output.write(newfile)
    output.close()

1 个答案:

答案 0 :(得分:1)

urllib2使用了httplib,因此诊断它的最佳方法是打开http连接调试。在访问URL之前添加此代码,您应该得到一个很好的摘要,确切地说明正在生成什么HTTP流量:

import httplib
httplib.HTTPConnection.debuglevel = 1