网页表格抓取(如何用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 是返回结果。

  有点相关文章

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线