- 论坛徽章:
- 1
|
- #! /usr/bin/perl
- use strict;
- # 使用 IO::Socket 模組
- use IO::Socket;
- # 取得命令列中的網頁位址,放入 $url 中
- my $url=shift || die "您沒有輸入 url 網址!\n";
- # 比對網頁位址是否合乎格式?
- my ($host, $file) = $url =~ m!http://([^/]+)(/[^\#]*)!; #(註1)
- # 若比對正確,才抓取
- if ($host) {
- # 產生一個 IO::Socket::INET 物件
- my $socket = IO::Socket::INET->new(
- PeerAddr => $host, # 指定主機位址
- PeerPort => 'http(80)' # 指定 port 號
- );
- # 針對 $socket 寫入,此動作形同對 $host 主機提出網頁檔 $file 的要求
- print $socket "GET $file HTTP/1.0\n\n";
- # 只要由 $socket 讀到一列資料,就處理之
- while(my $line=<$socket>) {
- # 把 CR (^M) 換掉
- $line =~ s/\r//g;
- # 顯示該列內容 (註2)
- print $line;
- }
- }
复制代码
使用法:
1. 存成 wget.pl
2. chmod +x wget.pl
3. ./wget.pl http://linux.tnc.edu.tw/techdoc/FSF.htm > FSF.htm
這程式是在 command line 下執行的~~但我把它轉成執行文件 , 下面代碼要怎麼修改
# 取得命令列中的網頁位址,放入 $url 中
my $url=shift || die "您沒有輸入 url 網址!\n";
my $url = <STDIN>; 我改成這樣好像沒辦法~~
懂得朋友可以教一下嘛
謝謝 |
|