我在這裏有一些問題使用LWP :: Simple在Perl中獲取ftp站點內容。如果該網站使用http,但不能使用ftp,例如ftp://ftp.di.uminho.pt/pub/ctan/fonts/,那麼它會正常工作。但在我的Firefox瀏覽器中,我可以將內容視爲html。使用LWP ::簡單得到在Perl中的ftp站點內容
那麼如何在這種情況下獲取網站的html?
我在這裏有一些問題使用LWP :: Simple在Perl中獲取ftp站點內容。如果該網站使用http,但不能使用ftp,例如ftp://ftp.di.uminho.pt/pub/ctan/fonts/,那麼它會正常工作。但在我的Firefox瀏覽器中,我可以將內容視爲html。使用LWP ::簡單得到在Perl中的ftp站點內容
那麼如何在這種情況下獲取網站的html?
LWP返回一個FTP目錄類型text/ftp-dir-listing
的文件。使用File::Listing解析它。
$ GET -USe ftp://ftp.di.uminho.pt/pub/ctan/fonts/
GET ftp://ftp.di.uminho.pt/pub/ctan/fonts/
User-Agent: lwp-request/6.00 libwww-perl/6.02
200 OK
Server: --------- Welcome to Pure-FTPd [privsep] ----------
Content-Length: 32208
Content-Type: text/ftp-dir-listing
Client-Date: Mon, 06 Jun 2011 21:32:45 GMT
Client-Request-Num: 1
drwxr-xr-x 257 500 50 20480 May 30 06:27 .
drwxrwsr-x 18 500 50 4096 Jun 6 20:02 ..
drwxr-xr-x 2 500 500 4096 Apr 7 19:13 Asana-Math
-rw-r--r-- 1 500 500 573482 Apr 7 19:14 Asana-Math.zip
drwxr-xr-x 2 500 50 4096 May 20 2005 CJK
-r--r--r-- 1 500 500 20384230 May 20 2005 CJK.zip
drwxr-xr-x 2 500 50 4096 May 20 2005 DayRoman
-r--r--r-- 1 500 500 573352 May 20 2005 DayRoman.zip
drwxr-xr-x 2 500 50 4096 Sep 7 2007 LuxiMono
-r--r--r-- 1 500 500 199660 May 6 2005 LuxiMono.zip
lrwxrwxrwx 1 500 50 8 Oct 14 2005 MnSymbol -> mnsymbol
lrwxrwxrwx 1 500 50 12 Oct 14 2005 Mnsymbol.zip -> mnsymbol.zip
['Asana-Math', 'd', undef, 1302196380, 16877],
['Asana-Math.zip', 'f', 573482, 1302196440, 33188],
['CJK', 'd', undef, 1116540000, 16877],
['CJK.zip', 'f', 20384230, 1116540000, 33060],
['DayRoman', 'd', undef, 1116540000, 16877],
['DayRoman.zip', 'f', 573352, 1116540000, 33060],
['LuxiMono', 'd', undef, 1189116000, 16877],
['LuxiMono.zip', 'f', 199660, 1115330400, 33060],
['MnSymbol', 'l mnsymbol', 8, 1129240800, 41471],
['Mnsymbol.zip', 'l mnsymbol.zip', 12, 1129240800, 41471],
+1,謝謝。我確實有一個問題。什麼是GET -USe ftp:// ftp.di.uminho.pt/pub/ctan/fonts /'?一個shell命令或一個perl命令? – 2011-06-06 21:53:42
也可以請你詳細闡述一下如何在這裏使用'File :: Listing'?我沒有看到這樣做的便捷方式。與正則表達式相比,我認爲'File :: Listing'很難使用。謝謝。 – 2011-06-06 21:57:29
http://p3rl.org/lwp-request – daxim 2011-06-06 21:58:09
你可能想使用Net::FTP
代替:
use Net::FTP;
$ftp = Net::FTP->new("some.host.name", Debug => 0)
or die "Cannot connect to some.host.name: [email protected]";
$ftp->cwd("/pub")
or die "Cannot change working directory ", $ftp->message;
$ftp->get("that.file")
or die "get failed ", $ftp->message;
$ftp->quit;
Firefox瀏覽器「談判」 FTP並顯示「頁面」給你,就好像它是一個HTML頁面,但它不是:) – Konerak 2011-06-06 20:26:54