如何使用Nokogiri在href中加载javascript函数

时间:2016-02-18 09:35:18

标签: ruby nokogiri

我想在我的ruby项目中使用Nokogiri抓取一些html页面。在抓取工具页面中,有一些我也想要抓取的链接。但问题是链接的href是javascript函数。

<a href="javascript:nextPage('some text','','other text')">Click here</a>

如何使用Nokogiri加载此动态页面?

2 个答案:

答案 0 :(得分:1)

我建议使用Mechanize。

使用示例:

require 'mechanize'

mechanize = Mechanize.new

page = mechanize.get('http://en.wikipedia.org/wiki/Main_Page')

link = page.link_with(text: 'Random article')

page = link.click

puts page.uri

所以在这个例子中,只要知道链接的文本元素就足够了,这样就可以让你走上正轨。

文档:http://readysteadycode.com/howto-scrape-websites-with-ruby-and-mechanize

答案 1 :(得分:0)

我让它和无头的人一起工作。与Nokogiri的宝石。由于有很多JavaScript加载页面,我使用此

require 'headless'
 headless = Headless.new
 headless.start
 browser = Watir::Browser.start(main_page_url)
 if browser.link(text: "Click here").present?
    browser.link(text: "Click here").click
 end
 sleep(2.0) # delay to account for ajax-calls
 #finally close the browser
 browser.close