2017-06-09 21 views
0

私は私の会社で初めて新しい雇用者です。初めてPerlに取り組んでいます。私たちが使用している場合https://www.talosintelligence.com/reputation_center/lookup?search=27.34.246.62perlスクリプトを使用してウェブサイト全体のコンテンツを取得します

しかし、Perlで: は、私は、このリンクからIP-評判を見つけるしたタスクを取得

#!/bin/perl 
use strict; 
use warnings; 
use WWW::Mechanize; 

open FILE1, ">./Reports/Reputation.txt" or die "Cannot open Reputation.txt!"; 
my $mech = WWW::Mechanize->new(autocheck => 1); 

my $url="https://www.talosintelligence.com/reputation_center/lookup?search=27.34.246.62"; 
$mech->get($url); 
print $mech->status(); 
my $content = $mech->content(); 
open FILE1, ">./Reports/Reputation.txt" or die "Cannot open Reputation.txt!"; 
print FILE1 ($content); 
close FILE1; 
print "\nIP Reputation Report Generated \n"; 

私は全体のコンテンツを得ることはありません。これを得るために私は何ができますか?

+0

なぜあなたは '二回FILE1'を開くのですか?それをしないでください。 –

答えて

0

コンテンツはJavaScriptからロードされています。したがって、簡単な方法でコンテンツをクロールすることはできません。

このような状況には2つのオプションがあります。

1)一部のAPIには、元のデータとJavaScriptの読み込み/書式設定が含まれています。 JavaScriptの読み込みコンテンツを解析する場合は、 WWW::Mechanize::Firefox

2)読み込み先の場所を特定してくださいJSONモジュールを使用しています。 RegExを使用するのと比べてとても単純です。

https://www.talosintelligence.com/sb_api/query_lookup?query=%2Fapi%2Fv2%2Frelated_ips%2Fip%2F&query_entry=27.34.246.62

+0

次の手順を実行すると、APIリンクが表示されます。 'Network'タップをクリックして' Network'に移動し、 'XHR'オプションを選択してからページをリロードすると、APIリンクが表示されます。 – mkHun

関連する問題