Ruby on rails 访问浏览器';使用ruby的公共“窗口”属性
是否可以使用Nokogiri、Mechanize或任何其他gem来访问可通过浏览器控制台访问的Ruby on rails 访问浏览器';使用ruby的公共“窗口”属性,ruby-on-rails,ruby,nokogiri,mechanize,watir,Ruby On Rails,Ruby,Nokogiri,Mechanize,Watir,是否可以使用Nokogiri、Mechanize或任何其他gem来访问可通过浏览器控制台访问的窗口属性?我认为您需要的是,它实际上是由Selenium提供动力的,工作起来很神奇 它基本上可以让你做以下事情: require 'watir' browser = Watir::Browser.new browser.goto("site-u-want-to-scrape.com") browser.window 尝试一下,看看这个,以便更好地理解 你到底想做什么?我正试图构建一个scrape
窗口
属性?我认为您需要的是,它实际上是由Selenium提供动力的,工作起来很神奇
它基本上可以让你做以下事情:
require 'watir'
browser = Watir::Browser.new
browser.goto("site-u-want-to-scrape.com")
browser.window
尝试一下,看看这个,以便更好地理解 你到底想做什么?我正试图构建一个scraper,但我发现我试图创建的站点有一个变量
窗口。productJSON
可以提供我需要的所有数据。我不想在nokogiri中使用css选择器,而是想知道是否有一种方法可以直接从window获取数据。productJSON
insteadNokogiri只是一个xml/html解析器。窗口是浏览器JavaScript api的一部分。没有浏览器-没有窗口。因此,您真正需要的是一个自动化的浏览器,如phantomjs或selenium。如果可以找到模式,则使用无头浏览器或使用正则表达式匹配json数据。然后保存或解析它不,你应该看看SeleniumWatir的工作原理!为了将散列输出到终端,我必须运行browser.execute\u脚本“return window.productJSON”
,运行良好。现在需要弄清楚如何在无头环境中运行它p谢谢!对于将来遇到这个问题的任何人,您可以这样做以使Chrome处于无头模式:browser=Watir::browser.new(:Chrome,{:chromeOptions=>{:args=>['--headless','--window size=1200x600']})