网页表格抓取(如何用perl提交表格部分表格使用HTMLPOST抓取网页?)
优采云 发布时间: 2021-11-12 07:22网页表格抓取(如何用perl提交表格部分表格使用HTMLPOST抓取网页?)
1、使用perl抓取网页
如果你只是想获取某个网页,使用LWP::Simple中的功能是最简单的。通过调用get($url)函数,可以获得相关URL的内容。
my $url = 'http://freshair.npr.org/dayFA.cfm?todayDate=current'
use LWP::Simple;
my $content = get $url;
die "Couldn't get $url" unless defined $content;
# $content 里是网页内容,下面是对此内容作些分析:
if($content =~ m/jazz/i) {
print "They're talking about jazz today on Fresh Air!\n";
} else {
print "Fresh Air is apparently jazzless today.\n";
}
非常简单易懂。获取网页内容很容易,但难的是有规律地过滤所需的内容。
2、通过POST提交表单
某些 HTML 表单使用 HTML POST 向服务器提交数据,您可以在此处执行此操作:
$response = $browser->post( $url,
[
formkey1 => value1,
formkey2 => value2,
...
],
);
示例分析:比如在()中提交一个序列并返回结果,使用perl来实现。代码如下:
#!/usr/bin/perl
use LWP::UserAgent;
my $browser = LWP::UserAgent->new;
$protein = "MSSSTPFDPYALSEHDEERPQNVQSKSRTAELQAEIDDTVGIMRDNINKVAERGERLTSI";
my $SUSUI_URL = "http://www.enzim.hu/hmmtop/server/hmmtop.cgi";
my $response = $browser->post( $SUSUI_URL, [ 'if' => $protein, ] );
if ($response->is_success) {
print $response->content;
} else {
print "Bad luck this time\n";
}
通过分析页面,我们可以看到只有一个输入要提交,即name="if"。 $protein 是要提交的序列。 $response->content 是返回结果。
有点相关文章