Javascript 是否可以从网页中转储AJAX内容?

Javascript 是否可以从网页中转储AJAX内容?,javascript,ajax,perl,Javascript,Ajax,Perl,我想把所有的名字和所有剩余的146页 红色/橙色的上一个/下一个按钮使用JavaScript,并通过AJAX获取名称 问题 是否可以编写脚本来抓取146页并转储名称 是否存在用于此类操作的Perl模块?通常,尝试使用基本上可以远程控制Firefox的Perl模块 不过,对于特定的页面,您可以使用以下简单的方法 只需向URL发出POST请求,并将参数从1传递到146 第30页的示例 故事的寓意:总是查看Chrome的“网络”选项卡,看看网页会发出什么请求。一般来说,尝试使用基本上可以远程控制Fir

我想把所有的名字和所有剩余的146页

红色/橙色的上一个/下一个按钮使用JavaScript,并通过AJAX获取名称

问题

是否可以编写脚本来抓取146页并转储名称

是否存在用于此类操作的Perl模块?

通常,尝试使用基本上可以远程控制Firefox的Perl模块

不过,对于特定的页面,您可以使用以下简单的方法

只需向URL发出POST请求,并将参数从1传递到146

第30页的示例

故事的寓意:总是查看Chrome的“网络”选项卡,看看网页会发出什么请求。

一般来说,尝试使用基本上可以远程控制Firefox的浏览器

不过,对于特定的页面,您可以使用以下简单的方法

只需向URL发出POST请求,并将参数从1传递到146

第30页的示例

这个故事的寓意是:始终查看Chrome的“网络”选项卡,查看网页发出的请求。

您可以使用或其他爬虫程序来完成此操作。也可能是个好主意

use Web::Scraper;
use URI;
use Data::Dump;

# First, create your scraper block
my $scraper = scraper {
    # grab the text nodes from all elements with class type_firstname (that way you could also classify them by type)
    process ".type_firstname", "list[]" => 'TEXT';
};

my @names;
foreach my $page ( 1 .. 146) {
  # Fetch the page (add page number param)
  my $res = $scraper->scrape( URI->new("http://www.familiestyrelsen.dk/samliv/navne/soeginavnelister/godkendtefornavne/drengenavne/?tx_lfnamelists_pi2[gotopage]=" . $page) );
  # add them to our list of names
  push @names, $_ for @{ $res->{list} };
}

dd \@names;
它会给你一个很长的名单,上面有所有的名字。运行它可能需要一些时间。首先尝试使用
1..1

您可以使用或其他爬虫程序来完成此操作。也可能是个好主意

use Web::Scraper;
use URI;
use Data::Dump;

# First, create your scraper block
my $scraper = scraper {
    # grab the text nodes from all elements with class type_firstname (that way you could also classify them by type)
    process ".type_firstname", "list[]" => 'TEXT';
};

my @names;
foreach my $page ( 1 .. 146) {
  # Fetch the page (add page number param)
  my $res = $scraper->scrape( URI->new("http://www.familiestyrelsen.dk/samliv/navne/soeginavnelister/godkendtefornavne/drengenavne/?tx_lfnamelists_pi2[gotopage]=" . $page) );
  # add them to our list of names
  push @names, $_ for @{ $res->{list} };
}

dd \@names;

它会给你一个很长的名单,上面有所有的名字。运行它可能需要一些时间。首先尝试使用
1..1

您不需要使用AJAX。一个简单的POST请求就可以了——请参阅我的更新答案。非主题:您可能有兴趣访问:)您不需要使用AJAX。一个简单的发帖请求就可以了-查看我的更新答案。非主题:您可能有兴趣访问:)