【问题标题】:Following a javascript postback using COM + IE automation to save text file在使用 COM + IE 自动化保存文本文件的 javascript 回发之后
【发布时间】:2010-11-10 23:29:39
【问题描述】:

我想自动归档此页面http://energywatch.natgrid.co.uk/EDP-PublicUI/Public/InstantaneousFlowsIntoNTS.aspx 上的数据,并上传到数据库。

我一直在其他页面上使用 python 和 win32com(在公司代理之后,所以没有直接的网络访问,因此我使用 IE 这样做)来执行此操作。我的问题是,当单击底部的“单击此处下载数据”链接时,是否可以提取并保存返回的 CSV 数据?此链接是 javascript 回发,比将页面本身重新格式化为 CSV 更容易。

。当然,如果可以提出更简单的替代方案,我不一定会致力于使用 Python?

谢谢

【问题讨论】:

    标签: javascript python com web webpage


    【解决方案1】:

    这是一个更好的方法,使用 mechanize 库。

    
    import mechanize
    
    b = mechanize.Browser()
    b.set_proxies({'http': 'yourproxy.corporation.com:3128' })
    
    b.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')]
    b.open("http://energywatch.natgrid.co.uk/EDP-PublicUI/Public/InstantaneousFlowsIntoNTS.aspx")
    
    b.select_form(name="form1")
    b.form.find_control(name='__EVENTTARGET').readonly = False
    b.form['__EVENTTARGET'] = 'a1'
    
    print b.submit().read()
    

    请注意如何指定 mechanize 应使用代理服务器(也可以使用纯 urllib)。还要注意 ASP.NETs javascript postback 是如何模拟的。

    编辑:

    如果您的代理服务器使用 NTLM 身份验证,则可能是问题所在。 AFAIK urllib2 不处理 NTLM 身份验证。你可以试试NTLM Authorization Proxy Server。来自readme file


    什么是“NTLM 授权代理服务器”?

    'NTLM Authorization Proxy Server'是一个类似代理的软件,它会授权你 在使用 MS 专有 NTLM 的 MS 代理服务器和 Web 服务器(尤其是 ISS)上 授权方法,它可以更改客户端请求标头中的某些值 以便这些请求看起来像 MS IE 发出的请求。它是用 Python 编写的 语言。请参阅 www.python.org。


    【讨论】:

    • 我试过了,使用 b.set_proxies({'http': 'user:pass@proxyserver:80' }) 作为我的 set_proxies 字符串,但得到这个错误:HTTP Error 407: Proxy Authentication Required ( ISA 服务器需要授权才能完成请求。拒绝访问 Web 代理过滤器。这就是我切换到使用 COM + IE 作为解决方法的最初原因。知道如何解决这个问题吗?感谢您的帮助
    • 如果您的代理服务器使用 NTLM 身份验证,则可能是问题所在。我已经更新了我的答案,建议使用 NTLM 授权代理服务器 - 一个本地代理,据说可以在 NTLM 和基本身份验证之间进行转换。我下载了主干版本并在 Python 2.5 上进行了测试。一个正常运行的代理。我没有可用于测试的带有 NTLM 的 IAS 代理服务器。
    猜你喜欢
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多