如何使用Python从网站下载文本文件?

时间:2012-10-08 05:19:20

标签: python file download

我需要编写一个函数来下载并存储今天的预发布域名.txt文件列表  http://www.namejet.com/pages/downloads.aspx. 因此,今天是10月8日,您希望获得文件“2012年10月8日星期一”。 尝试了请求但没有奏效。 我遇到了麻烦,因为文件没有存储在固定的URL上,而是隐藏在一些Javascript背后。

2 个答案:

答案 0 :(得分:2)

当你处理ASP.NET的postback系统时,这个有点棘手。如果这是用于个人脚本以外的任何其他内容,我会保持警惕,因为您实际上不仅使用其他网站的数据,而且还对其软件进行逆向工程(但是,IANAL并不知道有关这些问题的合法性)系统)。

您要做的是检查POST数据(使用Firebug,Chrome开发人员工具等)并查找表单对象的__EVENTTARGET__VIEWSTATE属性。您必须将__VIEWSTATE解码为可读(请查看http://ignatu.co.uk/ViewStateDecoder.aspx)。从那里开始,我认为你应该能够弄清楚如何获取你正在寻找的数据。

从Python开始,它就像:

from urllib2 import urlopen
from urllib import urlencode

data = urlopen('url', urlencode({
    '__VIEWSTATE': 'foo',
    '__EVENTTARGET': 'bar',
})).read()

答案 1 :(得分:1)

实际上,您获取文本文件以响应具有多个base64编码的请求参数的POST请求。随意玩它

使用Firebug或任何其他调试工具查看POST内容和参数