Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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
Python3-使用urllib运行.jsp脚本并检索结果_Python_Http_Python 3.x_Post_Urllib - Fatal编程技术网

Python3-使用urllib运行.jsp脚本并检索结果

Python3-使用urllib运行.jsp脚本并检索结果,python,http,python-3.x,post,urllib,Python,Http,Python 3.x,Post,Urllib,每次我在Tomcat服务器上运行.jsp文件时,都会创建一个csv文件。手动完成后,我点击一个链接“servers.jsp”,一个文件“server\u list.csv”开始下载 我希望在PythonV3脚本中执行此操作,这样我就可以迭代结果并自动化过程 下面是我的代码,用于向服务器发送帖子,在url中传递auth值并接收生成的.csv import urllib.request link = "https://tomcat.server.org:8443/html/scripts/serv

每次我在Tomcat服务器上运行.jsp文件时,都会创建一个csv文件。手动完成后,我点击一个链接“servers.jsp”,一个文件“server\u list.csv”开始下载

我希望在PythonV3脚本中执行此操作,这样我就可以迭代结果并自动化过程

下面是我的代码,用于向服务器发送帖子,在url中传递auth值并接收生成的.csv

import urllib.request

link = "https://tomcat.server.org:8443/html/scripts/servers.jsp"
userpass = {'pass': '12345', 'user': 'admin'}

data = urllib.parse.urlencode(userpass)
data = data.encode('utf-8') 
req = urllib.request.Request(link, data)
resp = urllib.request.urlopen(req)
respData = resp.read()

saveFile = open(Myfile.csv,'w')
saveFile.write(str(respData))
saveFile.close()
  • 确实创建了一个文件,但它不是完整的文件,而是文件应该包含的第一行(或部分)。为什么不下载整个文件
  • 如何将
    urllib.request.urlopen(req)
    的值打印为字符串

注意:我不能使用任何不是Python 3默认发行版附带的模块。首先,您必须检查响应代码
resp.code
。如果是200,您可以通过调用
resp.readall
来获取内容,该函数一直读取到EOF并返回
字节

resp.getheader('Content-type')
是一种文本,您可以使用
print(str(resp.readall())
显示。如果
内容类型
是非文本,则必须将其存储到文件中。由于内容是
字节
,因此必须以二进制模式存储在文件
打开

respData = resp.readall()
with open(Myfile.csv,'wb') as saveFile:
    saveFile.write(respData)

您是否尝试过改为
urllib.request.urlretrieve

注意:如果URL指向本地文件,或者存在该对象的有效缓存副本,则不会复制该对象

另一方面,请看一下
请求
包,它是围绕
urllib
构建的一个很好的包装器。我发现它更易于使用


问题表明他不想使用外部软件包。(
请求
)我的错。没有注意到。