我查阅了关于使用LWP的文章,但我仍然迷路了!在这个网站上我们找到了许多学校的名单;请参阅overview-page并按照一些链接获取一些结果页:
我想使用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 ...
解决方案:也许我们必须在那里用0到10000来计算
extern_eid = 709 - (从零到100000)这里
www-db.sn.schule.de/index.php?id=21&extern_eid=709
BTW:这里是LWP用户代理的数据;
请求方法描述的方法 在本节中用于发送 通过用户代理请求。该 以下请求方法是 提供:
$ ua-> get($ url)$ ua-> get($ url, $ field_name => $ value,...)
此方法将调度GET 请求给定的$ url。进一步 可以给出参数来初始化 请求的标头。这些是 作为单独的名称/值对给出。 返回值是响应对象。 有关说明,请参阅HTTP :: Response 它提供的界面。那里 仍然是一个响应对象 当LWP无法连接时返回 URL中指定的服务器或何时 协议处理程序中的其他失败 发生。
问题是:如何在上述网站上正确使用LWP :: UserAgent - 有效!?
我期待着所有的帮助!
答案 0 :(得分: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处理程序,在发出请求之前计算并添加查询参数。
答案 1 :(得分:0)
您描述了以下链接以进行网络抓取。 LWP子类WWW::Mechanize
比您当前的尝试更容易做到这一点。