我通常使用 WGET 从某个网页下载一两个图像,我在命令提示符下执行以下操作:wget 'webpage-url' -P 'directory to where I wanna save it'
. 现在如何在 Perl 和 Python 中自动化它?那是什么命令可以让我模拟,就好像我在命令提示符处输入命令一样?在 Python 中有很多类似的模块,比如子进程、操作系统等,我很困惑。
问问题
632 次
3 回答
8
在 Perl 中,最简单的方法是使用LWP::Simple
:
use LWP::Simple qw(getstore);
getstore('www.example.com', '/path/to/saved/file.ext');
于 2012-08-04T11:15:46.650 回答
4
import subprocess
subprocess.call(["wget", "www.example.com", "-P", "/dir/to/save"])
如果要读取 URL 并处理响应:
import urllib2
response = urllib2.urlopen('http://example.com/')
html = response.read()
如何从 html 中提取图像,您可以在此处阅读SO
于 2012-08-04T10:45:22.827 回答
2
在 Perl 中,您也可以使用qx(yourcommandhere)
. 这是程序的外部调用。
所以,在你的例子中:qx(wget 'webpage-url' -P '/home/myWebPages/')
。这对你来说已经足够了。
但是,正如s0me0ne所说,使用LWP::Simple
更好。
如果文件中有 url 列表,则可以使用以下代码:
my $fh; # filehandler
open $fh, "<", "fileWithUrls.txt" or die "can't find file with urls!";
my @urls = <$fh>; # read all urls, one in each raw of file
my $wget = '/path/to/wget.exe';
for my $url(@urls) {
qx($wget $url '/home/myWebPages/');
}
于 2012-08-04T12:17:41.393 回答