wget不下载python中的任何内容

57hvy0tb  于 2021-09-08  发布在  Java
关注(0)|答案(2)|浏览(380)

在我的linux终端上,我只需运行此命令即可从网站下载所有PDF wget -A pdf -m -p -E -k -K -np http://site/path/ 但为了在windows上使用python实现过程自动化,我尝试了这个脚本。尽管循环运行并打印(i),但wget命令似乎没有运行,因为它没有下载任何内容。电池只运行2秒钟。如果wget真的运行并下载所有内容,那么它将花费更多的时间。

import os
lst = ['www.falk-ross.eu']

for i in lst:
    print(i)
    os.system('wget -A pdf -m -p -E -k -K -np %s' % i)

为什么wget似乎不起作用?

cyej8jka

cyej8jka1#

要直接回答您的问题,我在这里看到两种方法:
直接在linux终端上运行python脚本,您知道 wget 已正确设置并正常工作
安装wget for windows,例如从http://gnuwin32.sourceforge.net/packages/wget.htm ,然后添加 wget.exe 文件是给你的 PATH ,或在中指定整个wget.exe路径 os.system 呼叫
如果我知道你使用的是什么linux终端,我的回答可能会更准确(wsl?西格温?linux虚拟机?所有这些都会有不同的行为)。但是,一般的规则是,linux shell的配置可能与windows环境不完全相同:它们具有不同的env变量,通常甚至不共享相同的可执行文件。
所有这些都只是为了让你知道它不起作用的可能原因。
但是,我建议您使用一种更具python风格的方式,如使用python从网站下载所有pdf文件中所述
从代码中调用另一个可执行文件通常是一个坏习惯,主要原因是:
您永远无法确定目标系统上的配置是否允许它,或者是否能够很好地处理它(目标可执行文件不能存在,或者存在于另一个路径,其执行可能被禁止,…)
这使得检测错误和在流中创建可预测的行为变得更加困难

sy5wg1nm

sy5wg1nm2#

即使在操作系统模块的文档中,也建议使用子流程模块。
我在生成必要的shell和获得结果时遇到了一些问题。子流程模块已修复我的问题。
此外,您还可以直接使用请求模块。

相关问题