The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

Scrappy::Scraper::Control - Scrappy HTTP Request Constraints System

VERSION

version 0.94112090

SYNOPSIS

#!/usr/bin/perl
my $control = Scrappy::Scraper::Control->new;
$control->allow('http://search.cpan.org');
$control->allow('http://search.cpan.org', if => {
content_type => ['text/html', 'application/x-tar']
}
);
$control->restrict('http://www.cpan.org');
if ($control->is_allowed('http://search.cpan.org/')) {
...
}
# constraints will only be checked if the is_allowed method is
# passed a HTTP::Response object.

DESCRIPTION

Scrappy::Scraper::Control provides HTTP request access control for the Scrappy framework.

ATTRIBUTES

The following is a list of object attributes available with every Scrappy::Scraper::Control instance.

allowed

The allowed attribute holds a hasherf of allowed domain/contraints.

my $control = Scrappy::Scraper::Control->new;
$control->allowed;
e.g.
{
'www.foobar.com' => {
methods => [qw/GET POST PUSH PUT DELETE/],
content_type => ['text/html']
}
}

restricted

The restricted attribute holds a hasherf of restricted domain/contraints.

my $control = Scrappy::Scraper::Control->new;
$control->restricted;
e.g.
{
'www.foobar.com' => {
methods => [qw/GET POST PUSH PUT DELETE/]
}
}

METHODS

allow

my $control = Scrappy::Scraper::Control->new;
$control->allow('http://www.perl.org');
$control->allow('http://search.cpan.org', if => {
content_type => ['text/html', 'application/x-tar']
}
);

restrict

my $control = Scrappy::Scraper::Control->new;
$control->restrict('http://www.perl.org');
$control->restrict('http://search.cpan.org', if => {
content_type => ['text/html', 'application/x-tar']
}
);

is_allowed

my $control = Scrappy::Scraper::Control->new;
$control->allow('http://search.cpan.org');
$control->restrict('http://www.perl.org');
if (! $control->is_allowed('http://perl.org')) {
die 'Cant get to Perl.org';
}

AUTHOR

Al Newkirk <awncorp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by awncorp.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.