Iva*_*ang 1 regex perl web-crawler
我对一切都很陌生.请帮忙.我正试图抓住每一个
<div class="name"><a href="/v/name/idlike123123ksajdfk">name</a></div>
Run Code Online (Sandbox Code Playgroud)
在网页中.我想要抓住/ v/name/idlike123123ksajdfk部分.(知道了
<div class="name"><a href="/v/
Run Code Online (Sandbox Code Playgroud)
部分是固定的)所以我写了正则表达式(可以让你笑):
~m#<div class="name"><a href="(/v/.*?)">#
Run Code Online (Sandbox Code Playgroud)
如果你纠正我的愚蠢代码将是非常有帮助的.
使用强大的HTML解析器(请参阅http://htmlparsing.com/了解原因):
use strictures;
use Web::Query qw();
my $w = Web::Query->new_from_html(<<'HTML');
<div class="name"><a href="/v/name/idlike123123ksajdfk">name</a></div>
<div class="name"><a href="/v/name/idlike123123ksajdfk">name</a></div>
<div class="name"><a href="/v/name/idlike123123ksajdfk">name</a></div>
<div class="name"><a href="/v/name/idlike123123ksajdfk">name</a></div>
<div class="name"><a href="/v/name/idlike123123ksajdfk">name</a></div>
HTML
my @v_links = $w->find('div.name > a[href^="/v/"]')->attr('href');
Run Code Online (Sandbox Code Playgroud)