目前正在研究一种解析页面数据的方法:http://www.foundationfinder.ch/
我喜欢用Perl:嗯--我只是在思考哪种方法是完成这项工作的最佳方式。我猜我正处在一个很好的学习曲线前面。;)此任务将为我提供一些不错的Perl lessions。现在我有点想不通了.;-)
下面是一个示例页面:

..。当我认为我可以在Id= 0和Id= 100000之间的某个范围内找到所有790个结果页面时,我认为我可以使用循环:
http://www.foundationfinder.ch/ShowDetails.php?Id=11233&InterfaceLanguage=&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=927&InterfaceLanguage=1&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=949&InterfaceLanguage=1&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=20011&InterfaceLanguage=1&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=10579&InterfaceLanguage=1&Type=Html
我想我可以用Perl的方式,但我不是很确定:我试图在相同的URL上使用LWP::UserAgent,如下所示,具有不同的查询参数,我想知道LWP::UserAgent是否为我们提供了一种遍历查询参数的方法?我不确定LWP::UserAgent是否有这样做的方法。嗯--我有时听说使用机械化更容易一些。但这真的更容易吗!?
顺便说一句,如果我用PHP的方式,我可以用Curl来做-不是吗!?
这是我的方法:我试着弄清楚。我深入研究了手册页和Howtos。我们可以使用一个循环来构造Curl,并重复使用Curl
如上所述:这里我们有一些结果页;
http://www.foundationfinder.ch/ShowDetails.php?Id=11233&InterfaceLanguage=&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=927&InterfaceLanguage=1&Type=Html
或者,我们可以在发出请求之前添加一个request_prepare处理程序来计算和添加查询参数。
再说一次:目标是:我希望解析数据,然后将其存储在本地MySQL数据库中
我应该定义一个extern_uid吗!?
然后像这样:
for my $i (0..10000) {
$ua->get('http://www.foundationfinder.ch/ShowDetails.php?Id=', id => 21, extern_uid => $i);
# process reply
}但是现在我卡住了--我需要帮助--我能这样做吗!?
问候
零
发布于 2011-05-15 20:51:22
不要这样做。使用、HTTP头、(火狐插件)或eqv。查看javasript在幕后做了什么,同时从here中选择需要什么才能到达该页面(带有表)。
要从表中获取数据,请使用HTML::TableExtract或HTML::TreeBuilder::XPath (如果要使用XPath
如果您确实想迭代查询,只需创建另一个var:
my $a = 'http://www.foundationfinder.ch/ShowDetails.php?Id=' . $q . '&InterfaceLanguage=&Type=Html';在使用get加载页面之前,请确保页面是有效的
https://stackoverflow.com/questions/6008400
复制相似问题