繁体   English   中英

使用Nokogiri / Mechanize存储和迭代链接数组

[英]Store and iterate over array of links using Nokogiri/Mechanize

我正在尝试将链接列表存储到数组中,然后迭代它们。

我有这个rake任务: https//gist.github.com/farooqyousuf/5268460

目前,rake任务遍历一个页面并获取我需要的一些链接,但它不能全部获取它们。

问题是第17行。

我需要它来做page2.search('.subtitleLink a').each但是我不能在那里添加.each ,最后: .map{|a| page2.uri.merge a[:href]}.each do |uri| .map{|a| page2.uri.merge a[:href]}.each do |uri| 它给出了一个错误。

所以我想我需要将page2.search('.subtitleLink a').each到一个数组中然后迭代它在每次迭代时执行这个代码( .map{|a| page2.uri.merge a[:href]}.each do |uri| ),但我的尝试并没有成功。

选项1:

我试过这个:

page2.search('.subtitleLink a').each do |x|      
  x.map{|a| page2.uri.merge a[:href]}.each do |uri|
    page4 = agent.get uri
  end   

但我得到这个错误:

rake aborted!
can't convert Symbol into Integer
/Users/farooqyousuf/Projects/HalalSpot/lib/tasks/something.rake:19:in `[]'

选项2:

                page2.search('.subtitleLink a').each do |x|

                    blah = URI.parse(URI.encode(x.to_s.strip))
                    page4 = agent.get blah

               end    

结果是:

rake aborted!
bad URI(is not URI?): %3Ca%20href=%22http://www.salatomatic.com/d/Hartford+3115+Muhammad-Islamic-Center-%22%3E%3Cb%3EMuhammad%20Islamic%20Center%20%3C/b%3E%3C/a%3E

思考?

puts "Enter the page url from which you wish to import data: "
page = STDIN.gets
page2 = Nokogiri::HTML(open(page))

links = page2.css('.subtitleLink a')

links.each do |link| 
 puts link['href']
 url = link['href'].strip

 page4 = agent.get url

 #do stuff

end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM