3

リンクのリストを配列に格納してから、それらを反復処理しようとしています。

このレーキ タスクがあります: https://gist.github.com/farooqyousuf/5268460

現在、rake タスクはページを通過し、必要なリンクの一部をフェッチしますが、すべてをフェッチするわけではありません。

問題は17行目。

私はそれを行う必要がありますが、最後にこれをpage2.search('.subtitleLink a').each追加することはできません.each: .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

考え?

4

1 に答える 1

0
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
于 2013-03-29T05:39:13.697 に答える