从Facebook获取图像文件

时间:2016-02-21 18:50:18

标签: perl

我正试图从Facebook帖子中提取图片。图片网址包含.jpg扩展名后的一些十六进制字符串。

我已经尝试过LWP :: Simple和WWW :: Mechanize但没有成功(错误501)。相同的代码适用于通常的* .jpg地址。

E.g。对于LWP ::简单。此代码有效:

use LWP::Simple;
my $url = "http://sunsetvalleyorchids.com/images/orchid_images/Pot.%20William%20Farrell%20'Native%20Son'-150611.jpg";
my $file = "test.jpg";
getstore($url,$file);

此代码不起作用:

use LWP::Simple;
my $url = 
https://scontent-iad3-1.xx.fbcdn.net/hphotos-xat1/v/t1.0-9/10670008_723959424306956_2403014210464990193_n.jpg?oh=bffe04b5a6e8c61381dbb85027e62a10&oe=5764ABCD

my $file = "test.jpg";
getstore($url,$file);

2 个答案:

答案 0 :(得分:0)

我认为这应该有用

get_b()

答案 1 :(得分:0)

使用LWP::Simple使得调试底层响应变得非常困难。为什么不选择LWP::UserAgent

use strict;
use warnings;

use LWP::UserAgent;
use Path::Tiny qw( path );

my $url
= 'https://scontent-iad3-1.xx.fbcdn.net/hphotos-xat1/v/t1.0-9/10670008_723959424306956_2403014210464990193_n.jpg?oh=bffe04b5a6e8c61381dbb85027e62a10&oe=5764ABCD';
my $file = 'test.jpg';

my $ua       = LWP::UserAgent->new;
my $response = $ua->get( $url );
die 'Could not get file' if !$response->is_success || $response->header('X-Died');
path( $file )->spew( $response->content );