Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用COM+;IE自动保存文本文件_Javascript_Python_Com_Web_Webpage - Fatal编程技术网

Javascript 使用COM+;IE自动保存文本文件

Javascript 使用COM+;IE自动保存文本文件,javascript,python,com,web,webpage,Javascript,Python,Com,Web,Webpage,我想自动归档此页面上的数据,并将其上载到数据库中 我一直在其他页面上使用python和win32com(在公司代理之后,因此没有直接的网络访问,因此我使用IE来实现这一点)。我的问题是,当单击底部的“单击此处下载数据”链接时,是否仍然可以提取和保存返回的CSV数据?此链接是javascript回发,比将页面本身重新格式化为CSV容易得多 。当然,如果可以推荐一个更简单的替代方案,我不一定会使用Python 谢谢这里有一个更好的方法,使用图书馆 请注意如何指定mechanize应使用代理服务器(也

我想自动归档此页面上的数据,并将其上载到数据库中

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

。当然,如果可以推荐一个更简单的替代方案,我不一定会使用Python


谢谢

这里有一个更好的方法,使用图书馆

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

编辑:


如果您的代理服务器正在使用NTLM身份验证,那么这可能就是问题所在。AFAIK urllib2不处理NTLM身份验证。你可以试试这个。从:


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

“NTLM授权代理服务器”是一个类似代理的软件,它将授权您 在MS代理服务器和使用MS专有NTLM的web服务器(特别是ISS)上 授权方法,它可以更改客户端请求标头中的某些值 因此,这些请求看起来像IE女士发出的请求。它是用Python编写的 语言。见www.python.org



这里有一个更好的方法,使用库

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

编辑:


如果您的代理服务器正在使用NTLM身份验证,那么这可能就是问题所在。AFAIK urllib2不处理NTLM身份验证。你可以试试这个。从:


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

“NTLM授权代理服务器”是一个类似代理的软件,它将授权您 在MS代理服务器和使用MS专有NTLM的web服务器(特别是ISS)上 授权方法,它可以更改客户端请求标头中的某些值 因此,这些请求看起来像IE女士发出的请求。它是用Python编写的 语言。见www.python.org



我用b.set_代理({'http':'user:pass@proxyserver:80'})作为我的set_代理字符串,但获取此错误:HTTP错误407:需要代理身份验证(ISA服务器需要授权才能完成请求。对Web代理筛选器的访问被拒绝。这是我切换到使用COM+IE作为解决方法的最初原因。知道如何解决此问题吗?感谢您的帮助如果您的代理服务器使用NTLM身份验证,这可能就是问题所在。我已更新了我的answer建议使用NTLM授权代理服务器—一个本地代理,应该可以在NTLM和基本身份验证之间进行转换。我下载了trunk版本,并在Python 2.5上进行了测试。这是一个正常运行的代理。我没有一个带有NTLM的IAS代理服务器可供测试。我使用b.set_代理进行了尝试({'http':'用户:pass@proxyserver:80'})作为我的set_代理字符串,但获取此错误:HTTP错误407:需要代理身份验证(ISA服务器需要授权才能完成请求。对Web代理筛选器的访问被拒绝。这是我切换到使用COM+IE作为解决方法的最初原因。知道如何解决此问题吗?感谢您的帮助如果您的代理服务器使用NTLM身份验证,这可能就是问题所在。我已更新了我的answer建议使用NTLM授权代理服务器—一个本地代理,据推测将在NTLM和基本身份验证之间转换。我下载了trunk版本并在Python 2.5上进行了测试。一个正常运行的代理。我没有一个带有NTLM的IAS代理服务器可供测试。

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()