我目前正在使用以下代码下载gz文件。 gz文件的url将根据用户提供的信息构建:
generalUrl = theWebsiteURL + "/" + packageName
因此generalURl可以包含以下内容:http://www.example.com/blah-0.1.0.tar.gz
res = requests.get(generalUrl)
res.raise_for_status()
我这里的问题是;我有一个名为theWebsiteURL
的变量的网站列表。我需要检查所有这些网站,以查看哪些网站中的packageName
中的软件包可供下载。我希望在确认过程中不要下载软件包。
一旦代码遍历了网站列表以发现包含该软件包的网站,那么我想从找到包含该软件包的网站列表中选择第一个网站,然后自动从中下载软件包。
类似这样的东西:
#!/usr/bin/env python2.7
listOfWebsites = [ website1, website2, website3, website4, and so on ]
goodWebsites = []
for eachWebsite in listOfWebsites:
genURL = eachWebsite + "/" + packageName
res = requests.get(genUrl)
res.raise_for_status()
if raise_for_status == "200"
goodWebsites.append(genURL)
这就是我的想象力停止的地方。我需要协助来完成这项工作。甚至不确定我是否会以正确的方式进行操作。
答案 0 :(得分:2)
您可以先尝试发送HEAD请求,以检查URL是否有效,然后才通过GET请求下载软件包。
//this is the try block that takes too long resulting the unresponsiveness of the gui
try {
while (resultSet.next()) {
for (int j = 1; j <= i; j++)
finalResult += resultSet.getObject(j) + " ";
finalResult += '\n';
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int k = 1; k <= i; k++)
finalResult += resultSet.getMetaData().getColumnName(k) + " ("
+ resultSet.getMetaData().getColumnTypeName(k) + ") ";
finalResult += '\n';
//this output is a string that will be shown in the JTextArea object
return finalResult;
}