1

我查找了有关使用 LWP 的文章,但我仍然迷路了!在这个网站上,我们找到了许多学校的名单;查看概述页面并点击一些链接并获得一些结果页面:

我想使用 LWP::UserAgent 解析站点并进行解析:想要使用 HTML::TreeBuilder::XPath 或 HTML::TokeParser

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

作为新手,我无法通过发布完整 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...

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

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

www-db.sn.schule.de/index.php?id=21&extern_eid=709

顺便说一句:这里是 LWP 用户代理的数据;

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

$ua->get( $url ) $ua->get( $url , $field_name => $value, ... )

此方法将在给定的 $url 上发送一个 GET 请求。可以提供更多参数来初始化请求的标头。这些以单独的名称/值对的形式给出。返回值是一个响应对象。有关它提供的接口的描述,请参阅 HTTP::Response。当 LWP 无法连接到 URL 中指定的服务器或协议处理程序发生其他故障时,仍然会返回一个响应对象。

问题是:如何以正确的方式在上述站点上使用 LWP::UserAgent - 有效!?

我期待着任何和所有的帮助!

4

2 回答 2

0

如果我正确理解了您的问题,您正在尝试在具有不同查询参数的相同 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
}

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

于 2010-10-22T23:11:22.263 回答
0

您出于网络抓取的目的描述了以下链接。LWP 子类比WWW::Mechanize您当前的尝试更容易做到这一点。

于 2010-10-23T14:22:45.937 回答