2013-10-17 99 views
1

我有下面的代码。我想要做的是将我指定的每个搜索查询都发布到浏览器窗口中,而不是列出当前编写的搜索结果。但我是一名初学者,在这方面很难找到相关文档。可能吗?从Ruby命令提示符启动浏览器窗口

问题是我将使用的search_criteria的实际列表实际上是40个条款,我需要为几十个和几十个城市完成 - 这就是为什么我希望自动化搜索过程。

如果无法将每个查询作为浏览器窗口(或浏览器窗口中更好的选项卡)启动,有没有办法指定每个导致系统化方式的URL,以便由命令提示符作为浏览器窗口启动?

require "google-search" 

search_criteria = ["makers", "makerspaces", "fablabs", "smartlabs"] 

#City name 
search_1 = search_criteria.map do |noun| 
    "#{noun} new york city" 
end 

#City acronym 1 
search_2 = search_criteria.map do |noun| 
    "#{noun} new york" 
end 

#City acronym 2 
search_3 = search_criteria.map do |noun| 
    "#{noun} nyc" 
end 


#Replace "search_1" for other acronyms 
search_1.each do |query| 
    puts "Just one moment please! I am searching for #{query}" 
    Google::Search::Web.new do |search| 
     search.query = query 
     search.size = :large 
    end.each { |item| puts item.title } 
end 
+0

使用selenium-webdriver,创建驱动程序并将其自定义想。 – uday

回答

0
search_criteria = ["makers", "makerspaces", "fablabs", "smartlabs"] 
names = ["new+york+city", "new+york", "nyc"] 

query_strings = names.map do |name| 
    "#{name}+#{search_criteria.join('+')}" 
end 

urls = query_strings.map do |q| 
    "google.com/search?q=" + q 
end 

cmd_line = urls.join(' ') 

然后,你将cmd_line经由system()调用谷歌CHROM可执行文件。在Mac OS X将是这样的:那么

system("/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --url #{cmd_line}") 

Chrome将传递给它在它自己的标签在新窗口中的字符串中打开每个URL。 如果你使用的是Windows,你必须找到chrome.exe可执行文件的位置,而在Linux中,你只需找到chrome二进制文件即可。在最后一部分之前的所有内容...... Chrome --url #{cmd_line}")只是可执行文件的路径,它被隐藏在OS X上的“Google Chrome.app”容器中。

相关问题