我目前正在尝试使用WWW :: Mechanize创建一个Perl webspider。Perl机械化查找所有链接数组循环问题
我所试图做的是创建一个webspider将抓取URL(由用户输入)的整个网站,并提取所有的链接从网站上的每一页。
但是我有一个如何蜘蛛整个网站获得的每一个环节出了问题,没有重复 我迄今所做的(遇到问题的部分IM反正):
foreach (@nonduplicates) { #array contain urls like www.tree.com/contact-us, www.tree.com/varieties....
$mech->get($_);
my @list = $mech->find_all_links(url_abs_regex => qr/^\Q$urlToSpider\E/); #find all links on this page that starts with http://www.tree.com
#NOW THIS IS WHAT I WANT IT TO DO AFTER THE ABOVE (IN PSEUDOCODE), BUT CANT GET WORKING
#foreach (@list) {
#if $_ is already in @nonduplicates
#then do nothing because that link has already been found
#} else {
#append the link to the end of @nonduplicates so that if it has not been crawled for links already, it will be
我将如何能够做到以上?
我这样做是为了尝试和蜘蛛整个网站获取网站上的每个网址的全面列表,没有重复。
如果您认为这不是实现相同结果的最佳/最简单的方法,我愿意接受您的想法。
您的帮助非常感谢,谢谢。
>>每个返回的链接是WWW ::机械化::链接对象。 –
更好地使nonduplicates哈希,循环与它使用密钥,使url是一个关键 –
你能告诉我一些示例代码来解释你的意思,感谢您的帮助 –