이번엔 perl을 이용하여 웹 크롤링(스크래핑)을 해보겠습니다. perl도 다른 언어들 처럼 크롤링을 할 수 있습니다. perl로 크롤링을 하는 방법은 여러 방법이 있을 수 있는데 여기에서는 Web::Scraper 모듈을 이용한 방법을 설명하겠습니다.
cpan 혹은 cpanm으로 Web::Scraper 모듈 설치
사용하기에 앞서서 먼저 Web::Scraper 모듈을 설치해야합니다. perl의 모듈은 CPAN에 있으므로 cpan이나 cpanm을 이용하여 설치하시면 됩니다. cpanm의 사용/설치법은 여기서 확인할 수 있습니다.
sudo cpanm Web::Scraper
소스작성
#!/usr/bin/perl5.22.1
##perl이 설치된 주소로 바꿔주세요.
use strict;
use warnings;
use Web::Scraper;
use URI;
my $stockCode = $ARGV[0];
my $URL = "https://finance.naver.com/item/main.nhn?code=".$stockCode;
my $html = scraper{
process 'p.no_today span.blind', "span" => 'TEXT';
}->scrape(URI->new($URL));
print $html->{span};
scraper를 통해서 크롤링을 할 수 있습니다.
scraper{}안에 process 'p.no_today span.blind', "span" => 'TEXT';를 통해서 no_today 클래스의 p요소의 하위로 있는 blind 클래스 span요소를 찾게 합니다. css의 selector와 같은 방식으로 지정합니다.
뒤의 "span" => 'TEXT' 는 찾은 값을 span이라는 변수명으로 저장을 하는 것입니다. "TEXT" 로 지정을 했기 때문에 html의 요소들은 빠지고 텍스트 값만 받을 수 있습니다.
참고 링크 https://github.com/Namil501/perlNaverStockCrawler