![](/img/trans.png)
[英]Nokogiri and Mechanize help (clicking links found by Nokogiri via 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.