PDA

View Full Version : چطور میشه محتویات یه web page که حاوی چندین url address است را با پرل داخل یه فایل متنی انتقال داد؟



truemancity
سه شنبه 31 شهریور 1388, 07:09 صبح
سلام دوست عزیز
من به دنبال قطعه برنامه ای از پرل هستم که یه صفحه وب که در بردارنده چندین آدرس یا لینک می باشد را بخواند و تمامی این لینک ها را به داخل یه فایل متنی منتقل نماید
ممنون میشم اگه پاسخ بدید؟
truemancity@gmail.com

vchakoshy
شنبه 04 مهر 1388, 17:27 عصر
این اسکریپت با استفاده از ماژول LWP اقدام به خوندن محتوای یک URL میکنه و بعد توسط ماژول Parse لینکهای اون محتوا رو جدا می کنه امیدوارم استفاده کنید

#!/usr/bin/perl




# load LWP library:

use LWP::UserAgent;

use HTML::Parse;
# define a URL
my $url = 'http://www.google.com';
# create UserAgent object
my $ua = new LWP::UserAgent;
# set a user agent (browser-id)
$ua->agent('Mozilla/5.5 (compatible; MSIE 5.5; Windows NT 5.1)');
# timeout:
$ua->timeout(15);
# proceed the request:
my $request = HTTP::Request->new('GET');
$request->url($url);
my $response = $ua->request($request);
# response code (like 200, 404, etc)
my $code = $response->code;
# headers (Server: Apache, Content-Type: text/html, ...)
my $headers = $response->headers_as_string;
# HTML body:
my $body = $response->content;
# print the website content:
# print $body;
# do some parsing:
my $parsed_html = HTML::Parse::parse_html($body);
for (@{ $parsed_html->extract_links(qw(a body img)) }) {
# extract all links (a, body, img)
my ($link) = @$_;
# print link:
print $link . "\n";


}