2

GET または POST 要求で Web ページの 50% だけを取得する最良の方法を知っている人はいますか? 私が取得した Web ページは、完全にロードするのに 10 秒から 20 秒かかり、ページの最初から数行だけをフィルタリングする必要があります。

4

3 に答える 3

7
use 5.010;
use strictures;
use LWP::UserAgent qw();

my $content;
LWP::UserAgent->new->get(
    $url,
    ':content_cb' => sub {
        my ($chunk, $res) = @_;
        state $length = $res->header('Content-Length');
        $content .= $chunk;
        die if length($content) / $length > 0.5;
    },
);
于 2012-06-11T17:05:51.427 に答える
3

問題のWebサイトがContent-Lengthヘッダーを提供している場合は、送信されるデータの量を尋ねて、その半分だけを要求できます。

このコードはを示しています。

use strict;
use warnings;

use LWP;

my $ua = LWP::UserAgent->new;
my $url = 'http://website.test';

my $resp = $ua->head($url);
my $half = $resp->header('Content-Length') / 2;

$resp = $ua->get($url, Range => "bytes=1-$half");
my $content = $resp->content;
于 2012-06-11T22:04:19.763 に答える
2

Web アプリケーションがページをレンダリングするのに長い時間が必要な場合、通常、ページの「半分」をフェッチしてプロセスを高速化することはできません。

ページは、すべてのデータベース クエリと実際のレンダリングが完了した後に配信されます。そして、それらがおそらく長い遅延の理由です。

于 2012-06-11T18:58:12.050 に答える