例として:
.txtから入力をロードします。
ベンジャミン、シュヴライン、ドイツ、1912年、M、ホワイト
簡潔にするためにここに投稿しないコードをいくつか実行し、リンクにアクセスします。
https://familysearch.org/pal:/MM9.1.1/K3BN-LLJ
- そのページから複数のものを削りたい。以下のコードでは、1つだけ実行します。
- また、出力.txtで、各項目を。で区切るようにします。
- そして、出力の前に入力を付けてほしい。
コードで次のパッケージを使用しています。
use strict;
use warnings;
use WWW::Mechanize::Firefox;
use Data::Dumper;
use LWP::UserAgent;
use JSON;
use CGI qw/escape/;
use HTML::DOM;
関連するコードは次のとおりです。
my $ua = LWP::UserAgent->new;
open(my $o, '>', 'out2.txt') or die "Can't open output file: $!";
# Here is the url, although in practice, it is scraped itself using different code
my $url = 'https://familysearch.org/pal:/MM9.1.1/K3BN-LLJ';
print "My URL is <$url>\n";
my $request = HTTP::Request->new(GET => $url);
$request->push_header('Content-Type' => 'application/json');
my $response = $ua->request($request);
die "Error ".$response->code if !$response->is_success;
my $dom_tree = new HTML::DOM;
$dom_tree->write($response->content);
$dom_tree->close;
my $str = $dom_tree->getElementsByTagName('table')->[0]->getElementsByTagName("td")->[10]->as_text();
print $str;
print $o $str;
(そのリンクからの)必要な出力は次のようなものです。
ベンジャミン、シュヴライン、ドイツ、1912年、M、ホワイト、クイーンズ、ニューヨーク、既婚、同じ場所、頭など...
(その出力セクションのどれだけがスクレイプ可能ですか?)
リンク内のリンクを取得する方法についてのヘルプをいただければ幸いです。