Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 访问浏览器';使用ruby的公共“窗口”属性_Ruby On Rails_Ruby_Nokogiri_Mechanize_Watir - Fatal编程技术网

Ruby on rails 访问浏览器';使用ruby的公共“窗口”属性

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

是否可以使用Nokogiri、Mechanize或任何其他gem来访问可通过浏览器控制台访问的
窗口
属性?

我认为您需要的是,它实际上是由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']})