我想写一个BASH脚本(使用sed,grep,awk等)从https://stackoverflow.com/?tab=month中提取问题的标题。
例如:
答案 0 :(得分:8)
这是一个小型Mojo::UserAgent程序,用于获取页面,使用选择器查找正确的A
标记,并提取这些标记的文本:
use v5.10;
use open qw(:std :utf8);
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new;
my $tx = $ua->get( 'https://stackoverflow.com/?tab=month' );
unless( $tx->success ) {
die "Something wrong happened, so handle that";
}
say $tx->res->dom('a.question-hyperlink')->map( 'text' )->join( "\n" );
ojo模块(也带有Mojolicious)具有命令行的单行快捷键:
perl -Mojo -E 'say g(shift)->dom("a.question-hyperlink")->map("text")->join("\n")' 'stackoverflow.com/?tab=month'
正如评论所指出的那样,在https://stackoverflow.com/feeds/month处有一个XML版本,而不是抓取HTML。您可以抓住它并使用XPath选择内容。