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



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

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

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

我得到了它与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

我建议使用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

相关内容

  • 没有找到相关文章

最新更新