1

我通常使用 WGET 从某个网页下载一两个图像,我在命令提示符下执行以下操作:wget 'webpage-url' -P 'directory to where I wanna save it'. 现在如何在 Perl 和 Python 中自动化它?那是什么命令可以让我模拟,就好像我在命令提示符处输入命令一样?在 Python 中有很多类似的模块,比如子进程、操作系统等,我很困惑。

4

3 回答 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 回答