javascript - 可以从网页转储 AJAX 内容吗?

标签 javascript ajax perl

我想转储this page上的所有名字以及所有剩余的 146 页。

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

问题

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

是否存在用于此类事情的 Perl 模块?

最佳答案

您可以使用WWW::Mechanize或另一个爬虫。 Web::Scraper也许也是个好主意。

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

关于javascript - 可以从网页转储 AJAX 内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21552753/

相关文章:

javascript - 谷歌分析实时未显示在购物行为中

javascript - 变量不随 if 语句改变

javascript - 预加载器 - 从子页面返回主页面时如何关闭它?

linux - 使用 Perl 从文件中读取特定列值

xml - 使用 my() 彻底改变了 XML::Bare 的行为

javascript - 在 Jquery 的每次 ajax 调用中附加我的 session ID

javascript - Pubnub:拍卖应用程序开发的后台流程

jquery - 在 ajax 请求后使用 .each() 函数淡化 div 有问题吗?

php - 将参数从 jquery 传递到 php

perl - 如何使用 Perl 获得频率序列的递减累积?