我想在我的ruby项目中使用Nokogiri抓取一些html页面。在抓取工具页面中,有一些我也想要抓取的链接。但问题是链接的href是javascript函数。
<a href="javascript:nextPage('some text','','other text')">Click here</a>
如何使用Nokogiri加载此动态页面?
答案 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