0

我正在尝试改进这种用于搜索演员维基页面并拉出所有电影链接的方法。目前,我正在使用 nokogiri 解析页面和正则表达式来检索标题中带有单词“(电影)”的所有链接,但这仍然错过了我需要的大部分链接。有没有人建议检索更多相关链接?

 def find_films_by_actor(doca, out = [])
        puts "Entering find_films_by_actor with #{find_name_title(doca)}."
        all_links = doca.search('//a[@href]')
        all_links.each do |link|
            link_info = link['href']
            if link_info.include?("(film)") && !(link_info.include?("Category:") || link_info.include?("php"))
                then out << link_info end
          end
        out.uniq.collect {|link| strip_out_name(link)}
    end
4

1 回答 1

1

我发现使用 css 获取您想要的链接是最干净的:

links = doc.search 'a[title*="(film)"]'

您甚至可以进行节点集数学以缩小范围:

links -= doc.search 'a[title*=foo]'

要获取唯一名称(来自文本):

links.map(&:text).uniq
于 2012-11-09T03:50:58.420 回答