我正在尝试从网络上下载一个zip文件,并尝试使用wget -O fileName urlLink通过控制台命令下载它,但是在尝试代码时,CMD打开一秒钟然后关闭,我找不到文件放在任何地方。
我尝试使用其他方式下载文件,但它们返回错误403。在CMD中使用wget可以下载正确的文件,但不能在python代码中下载。
def gotoDownload(link):
try:
with requests.Session().get(link) as download:
if isUrlOnline(download):
soup = BeautifulSoup(download.content, 'html.parser')
filtered = soup.find_all('script')
zip_file_url = re.search(r"('http.*?')", filtered[17].text).group().replace("'", "")
os.system("wget -O {0} {1}".format('CreatureFinalZTL.zip', zip_file_url))
期待下载文件 而是不下载任何内容。
答案 0 :(得分:1)
有些事情可能会在这里有所帮助(它可能会或可能不会解决您的问题,因为它取决于您计算机的设置和配置)。首先,我建议的一件事是在路径上更具体。您可以在wget行中使用绝对路径,如下所示:
"wget -O {0} {1}".format('/path/to/output/dir/CreatureFinalZTL.zip', zip_file_url)
如果Python环境无法在您期望的目录中运行,这通常会很有帮助。或者,您可以使用以下python命令强制目录:
os.chdir( path )
然后,您可以使用相对路径进行操作而不必担心。我建议的第二件事是确认网址就是您所期望的。像这样打印出来:
print( zip_file_url )
听起来可能很愚蠢,但重要的是要确认您的正则表达式运行正常。
答案 1 :(得分:1)
改为使用subprocess
。
import subprocess
...
subprocess.run(["wget", "-O", 'CreatureFinalZTL.zip', zip_file_url])
这避免了您希望运行的命令涉及任何shell。
答案 2 :(得分:0)
已修复,必须将wget重新添加到Windows上的PATHS。