python urllib2.openurl在特定URL(重定向)下无法工作?

1 投票
1 回答
989 浏览
提问于 2025-04-15 20:48

我需要下载一个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

下面的代码可以用来处理其他任何文件(网址),只要是完整的路径就行,但用上面的链接下载时却只得到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 个回答

1

urllib2在背后使用了httplib,所以要找出问题的最好办法就是开启http连接的调试功能。在你访问网址之前,添加这段代码,你就能看到一个很清晰的总结,告诉你到底生成了什么样的http流量:

import httplib
httplib.HTTPConnection.debuglevel = 1

撰写回答