代码之家  ›  专栏  ›  技术社区  ›  zero

如何使用Perl的LWP::UserAgent以不同的查询字符串获取相同的URL?

  •  1
  • zero  · 技术社区  · 15 年前

    我查阅了关于使用LWP的文章,但是我还是迷路了!在这个网站上,我们找到了许多学校的名单;参见 overview-page 然后按照一些链接获取一些结果页面:

    目前我正在考虑选择正确的get请求! 我对LWP::Useragent有一些问题。总览的子站点可以通过直接链接访问。但是-注意:每个网站都有内容。例如,上述结果页的以下网址。

    作为一个新手,我不能通过发布完整的URL来显示不同结尾的结尾,但在这里您可以看到结尾:

    id=21&extern_eid=709
    id=21&extern_eid=789
    id=21&extern_eid=1297
    id=21&extern_eid=761
    

    有许多不同的URL,它们在URL的末尾不同。问题是:如何运行LWP::UserAgent?我要获取并解析所有-1000个站点**

    问题:LWP是否自动完成任务!?或者我必须设置LWP::UserAgent,它将自动查找不同的url。。。

    解决方案:也许我们必须从0数到10000

    extern_eid=709-(从零到100000计数)

    www-db.sn.schule.de/index.php?id=21外部id=709

    BTW:这里是LWP用户代理的数据;

    请求方法描述的方法 在本节中用于发送 通过用户代理请求。这个 以下请求方法是 提供:

    $ua->获取($url)$ua->获取($url, $field_name=>$value,…)

    此方法将发送一个GET 请求给定的$url。进一步 参数可以用来初始化 请求的头。这些是 作为单独的名称/值对给出。 返回值是一个响应对象。 有关说明,请参见HTTP::Response 它提供的接口。在那里 仍将是响应对象 当LWP无法连接到 在URL中指定的服务器或 协议处理程序中的其他故障 发生。

    问题是:如何在上面提到的站点上正确使用LWP::UserAgent-有效!?

    我期待所有人的帮助!

    2 回复  |  直到 15 年前
        1
  •  0
  •   Alvin    15 年前

    如果我正确理解您的问题,那么您正在尝试对具有不同查询参数的相同url使用LWP::UserAgent,您想知道LWP::UserAgent是否为您提供了循环查询参数的方法?

    我不认为LWP::UserAgent有方法让你这么做。但是,您可以有一个循环来构造url并重复使用LWP::UserAgent:

    for my $id (0 .. 100000)
    {
        $ua->get($url."?id=21&extern_eid=".(709-$id))
        //rest of the code
    }
    

    或者,您可以添加一个请求准备处理程序,该处理程序在发送请求之前计算并添加查询参数。

        2
  •  0
  •   daxim Fayland Lam    15 年前

    您描述了以下用于网页抓取的链接。LWP子类 WWW::Mechanize 比你现在的尝试更容易做到。